Hallo.
Habe ein Problem mit ActionListener.
In einem Programm soll bei mir der ActionListener eines Buttons erst nach der "Aktivierung" eines anderen Buttons erfolgen. Klappt soweit wunderbar. Nur wenn ich den "Aktivierungsbutton" (im Code b1) erneut anklicke, und dann wieder den zweiten (b2), führt mir der zweite Button sein Befehl gleich zwei mal aus.
Hat vielleicht jemand eine Idee, wie man nach dem einmaligen Ausführen den ActionListener irgendwie auf den Anfangszustand setzten kann?
Hier TestCode:
Habe ein Problem mit ActionListener.
In einem Programm soll bei mir der ActionListener eines Buttons erst nach der "Aktivierung" eines anderen Buttons erfolgen. Klappt soweit wunderbar. Nur wenn ich den "Aktivierungsbutton" (im Code b1) erneut anklicke, und dann wieder den zweiten (b2), führt mir der zweite Button sein Befehl gleich zwei mal aus.
Hat vielleicht jemand eine Idee, wie man nach dem einmaligen Ausführen den ActionListener irgendwie auf den Anfangszustand setzten kann?
Hier TestCode:
Java:
package Test;
public class ButtonTest extends java.awt.Frame {
javax.swing.JButton b1 = new javax.swing.JButton();;
javax.swing.JButton b2 = new javax.swing.JButton();
javax.swing.JPanel jPanel1 = new javax.swing.JPanel();
public ButtonTest() {
initComponents();
}
private void initComponents() {
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
b1.setText("b1");
jPanel1.add(b1);
b2.setText("b2");
jPanel1.add(b2);
add(jPanel1, java.awt.BorderLayout.CENTER);
pack();
b1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
print();
}
});
}
public void print(){
System.out.println("führe Test durch");
b2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("test");
}
});
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ButtonTest().setVisible(true);
}
});
}
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
}