Buttonlistener/eventhandler Problem

xXdAvXx

Grünschnabel
Hallo erstmal,

kenne mich nicht besonders gut aus in java, bin noch sozusagen, aber ich versuche das problem so gut wie möglich zu schildern:
also ich versuche ein Prog zu schreiben wo am anfang 3 buttons(Ohm'sches Gesetz, Drahtwiderstand, Leistung) Links stehen, jeweils für eine Formel der Elektronik. wenn man den entsprechenden button klickt sollen in der mitte textfelder für die rechenwerte und ein ok button auftauchen.
also wollte ich mit einem eventhandler rauskriegen welcher button am anfang geklickt wurde und dann das entsprechende mittelpanel erzeugen.

zuerstma der Code:
private void addButtonListener(JButton listener)
{
listener.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
auswahl(event.getActionCommand());
}
});
}
private void auswahl(String String1)
{
if (String1.equals("Ohm'sches Gesetz"))
{
remove(anzeige);
mittel =new JPanel(new GridLayout(5,0));
anweisung = new JLabel("<html>Bekannte Groessen angeben,<p/den Rest unverändert Lassen</html>");
mittel.add(anweisung);
ok = new JButton("Ok");
text = new TextField("Hier Widerstand in OHM eingeben");
text2 = new TextField("Hier Spannung in VOLT eingeben");
text3 = new TextField("Hier Strom in AMPERE eingeben");
mittel.add(text);
mittel.add(text2);
mittel.add(text3);
mittel.add(ok);
getContentPane().add(BorderLayout.CENTER,mittel);
pack();
}
if (String1.equals("Drahtwiderstand"));
{
remove(anzeige);
mittel =new JPanel(new GridLayout(3,0));
anweisung = new JLabel("<html>Derzeit nur Kupferdraehte</pzu berechnen</html>");
mittel.add(anweisung);
text = new TextField("Hier Laenge in METER eingeben");
text2 = new TextField("Hier Flaeche des Querschnitts in mm² eingeben");
mittel.add(text);
getContentPane().add(BorderLayout.CENTER,mittel);
pack();
}
}

also das prog sollte den Namen des Buttons im String String1 speichern, da läuft etwas schief, sodass das prog die alle IF anweisungen auf ein mal ausführt. wenn ich versuche String1 auszugeben oder in einen anderen string zu schreiben gibz ne nullpointerexeption

plzzzz help
greez ich
 
xXdAvXx hat gesagt.:
Code:
private void addButtonListener(JButton listener) 
{ 
listener.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent event) 
{ 
auswahl(event.getActionCommand()); 
} 
}); 
}

1. So funktioniert das nicht
2. Selbst wenn es funktionieren können soll, muss natürlich das addButtonListener irgendwo aufgerufen werden, das passiert aber nie.
Weise jedem Button einen eigenen ActionListener zu, etwa in dieser Form:
Code:
JButton jbOK = new JButton("OK");
jbOK.addActionListener(new ActionListener() 
{ 
  public void actionPerformed(ActionEvent event) 
  { 
    jbOK_actionPerformed(event.getActionCommand()); 
  } 
});

Ausserdem müste
getContentPane().add(BorderLayout.CENTER,mittel);
wenn ich mich recht erinnere die Anweisung eher anders herum aussehen:
getContentPane().add(mittel, BorderLayout.CENTER);

Und noch ein Tip: Gewöhn Dir schon am Anfang die üblichen Namenskonventionen an.
 

Neue Beiträge

Zurück