Hallo,
ich hab ein Problem mit meinen JButtons bzw. JTextField. Wenn ich einen Button drücke bekomme ich eine Menge Fehlermeldungen auf der Konsole und die Werte aus den JTextFields werden nicht übergeben.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Beim compilen gabs keine Problem, hat zufällig jemand eine Idee was das sein kann?
Code:
class Eingeben extends JDialog implements ActionListener{
public JTextField gtpname;
public JButton verwerfen;
public Eingeben(){
setSize(300,200);
setLayout(new GridLayout(3,2));
setTitle("Geben Sie die Daten für eine neue Pizza ein!");
JLabel pname = new JLabel("Name der Pizza: ");
getContentPane().add(pname);
JTextField gtpname = new JTextField();
getContentPane().add(gtpname);
JLabel ppreis = new JLabel("Preis der Pizza: ");
getContentPane().add(ppreis);
JTextField getppreis = new JTextField("");
getContentPane().add(getppreis);
JButton speichern = new JButton("Speichern");
JButton verwerfen = new JButton("Verwerfen");
getContentPane().add(speichern);
getContentPane().add(verwerfen);
verwerfen.addActionListener(this);
speichern.addActionListener(this);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent event){
if(event.getActionCommand().equals("Verwerfen")){
System.out.println("Geht was?");
gtpname.setText("");
//dispose();
}
if(event.getActionCommand().equals("Speichern")){
String name = gtpname.getText();
System.out.println("Geht hier was?");
}
}
}
public JTextField gtpname;
public JButton verwerfen;
public Eingeben(){
JTextField gtpname = new JTextField();
....
JButton speichern = new JButton("Speichern");
JButton verwerfen = new JButton("Verwerfen");
Schau mal hin - Du deklarierst innerhalb des Konstruktors nochmal die Variablen mit dem selben Namen. Du kannst dir die Deklaration der beiden Variablen aber sparen, da dies schon außerhalb passiert ist, innerhalb des Konstruktors musst du nun nur noch die Objekte entsprechend erzeugen.
Wieso wundert dich das? Innerhalb des Konstruktors werden die Variablen nochmal deklariert u. instanziert. Du fügst die den Panels etc. hinzu und zeigst sie an..
In irgendeinem Listener versuchst du dann best. Aktionen durchzuführen, diese greifen dann auf deine public Variablen zu - da du diese Variablen aber bisher nur deklariert hast , keine Objekte angelegt, wird ne NullpointerException ausgelöst...eigentlich doch recht logisch....