error: cannot find symbol
什么似乎并不作品:
如果我写: “InvoerVakhandler延伸范博文”然后错误消失,但然后我得到一个无尽的循环,最后程序崩溃,并说堆栈溢出错误。
如果我尝试从类boven中更改“}”符号并将其放在文本的末尾,那么我甚至会得到更多的错误消息。
问题:我需要更改我的代码才能使其工作?
注: 我是新来的Java,我知道有更多的职位像这样的,但我不能与Java的我目前的了解有限,把它们应用到我的代码。
如果有人想知道:我正在使用JCreator。
我想做什么:我想要做的是相当简单。
1)在JTextField中填入名称,按回车键,名称应该出现在JTextArea中。名称位于JTextArea中后,JTextField变为空,所以您可以填充另一个名称等,那么应该在JTextArea中出现一个名称列表。 (这是我现在试图做的)
2)按下按钮kiesWin使程序从列表中选择一个随机的人。
3)按下按钮resetL重置程序,所以我可以做一个新的列表,从中选择一个随机获胜者。代码
部分地方出现的错误:(从类InvoerVakHandler)
String invoer = invoervak1.getText();
用我有限的Java知识的问题可能是litterly任何地方,所以在情况下,我会后整个代码。
整个代码:
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
// Main method to make the frame
public class Loterij3 extends JFrame {
public static void main(String args[]) {
JFrame frame = new Loterij3();
frame.setExtendedState(frame.MAXIMIZED_BOTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Klanten Register");
frame.setContentPane(new Paneel());
frame.setVisible(true);
}
}
class Paneel extends JPanel {
private boven Boven;
JTextArea textvak1;
JTextField textvak2;
OnthoudNaam onthoudNaam = new OnthoudNaam();
public Paneel() {
setLayout(new BorderLayout()); // using border Layout.
setBackground(Color.LIGHT_GRAY);
textvak1 = new JTextArea();
add(new JScrollPane(textvak1));
textvak1.setBackground(Color.WHITE);
textvak2 = new JTextField();
textvak2.setHorizontalAlignment(JTextField.CENTER);
textvak2.setEditable(false);
Boven = new boven();
add(Boven, BorderLayout.NORTH);
add(textvak1, BorderLayout.CENTER);
add(textvak2, BorderLayout.SOUTH);
}
public class boven extends Paneel {
JButton kiesWin, resetL;
JLabel label1;
JTextField invoervak1;
public boven() {
setBackground(Color.LIGHT_GRAY);
setLayout(new GridLayout(1, 4, 100, 5)); // using GridLayout.
Border border =
BorderFactory.createEmptyBorder(10, 10, 10, 10);
setBorder(border);
kiesWin = new JButton("Kies een Winnaar!");
kiesWin.addActionListener(new kies());
resetL = new JButton("Reset alles");
resetL.addActionListener(new reset());
label1 = new JLabel("Voer Persoon in en druk op enter: ", JLabel.RIGHT);
invoervak1 = new JTextField(20);
invoervak1.addActionListener(new InvoerVakHandler());
add(label1);
add(invoervak1);
add(kiesWin);
add(resetL);
}
}
// de naam
class naam {
private String ingevoerdNaam;
public naam(String ingevoerdNaam) {
this.ingevoerdNaam = ingevoerdNaam;
}
public String getIngevoerdNaam() {
return ingevoerdNaam;
}
}
// Arraylist
class OnthoudNaam extends JPanel {
private ArrayList<naam> lijst;
public OnthoudNaam() {
lijst = new ArrayList<naam>();
}
public void voegNaamToe(naam x) {
lijst.add(x);
}
public String toString() {
StringBuffer buffer = new StringBuffer();
for(naam x : lijst) {
buffer.append(x);
buffer.append("\n");
}
return buffer.toString();
}
}
// this is the part where the code goes wrong
public class InvoerVakHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
String invoer = invoervak1.getText();
naam naam = new naam(invoer);
onthoudNaam.voegNaamToe(naam);
textvak1.setText(onthoudNaam.toString());
}
}
// kies
class kies implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
}
// reset
class reset implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
}
}
大家谁试图帮助我:谢谢您的帮助和耐心提前!
在'public class boven extends Paneel {' – Maroun 2013-05-08 18:25:35
之前你应该有'}'你可以提供哪条线明确地导致这个错误?通常,当你使用一个你没有在请求范围内定义的变量时,会发生这些错误。 – Makoto 2013-05-08 18:25:55
@MarounMaroun:我可以看到有适当数量的大括号... – Makoto 2013-05-08 18:26:32