Hallo,
ich habe in zwei Klassen folgende Codes geschrieben und habe gemerkt, dass mein ActionListener in der zweiten Klasse irgendwie übersprungen wird. (Bin noch ein Anfänger und verstehe nicht ganz warum er übersprungen wird):
Main-Klasse:
Zweite Klasse mit dem ActionListener was übersprungen wird:
Konkret heißt das für mich: Für den Wert "value" wird immer 0 ausgegeben, nicht etwas 1999 oder 2000.
Was ich mit diesem Programm machen will: Fenster mit 2 JCheckBoxen wird geöffnet, erst, wenn man den Bestätigungsknopf drückt wird mittels isSelected() gecheckt welche JCheckBoxen angekreuzt wurden: Wenn box1 angekreuzt wurde, soll "value" 1999 betragen, bei box2 2000. "value" soll dann am Ende wieder der Main-Klasse übergeben werden.
ich habe in zwei Klassen folgende Codes geschrieben und habe gemerkt, dass mein ActionListener in der zweiten Klasse irgendwie übersprungen wird. (Bin noch ein Anfänger und verstehe nicht ganz warum er übersprungen wird):
Main-Klasse:
Java:
package de.kenta1561.main;
public class Main {
public static void main(String[] args) {
AListener al = new AListener();
int thisValue = al.value();
System.out.println(thisValue);
}
}
Zweite Klasse mit dem ActionListener was übersprungen wird:
Java:
package de.kenta1561.main;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class AListener {
private JCheckBox box1 = new JCheckBox();
private JCheckBox box2 = new JCheckBox();
public int value;
int value() {
JFrame frame = new JFrame("Checkboxen");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setLayout(new FlowLayout());
JButton button = new JButton();
button.setText("Ausgeben");
frame.add(box1);
frame.add(box2);
frame.add(button);
frame.pack();
frame.setVisible(true);
button.addActionListener(new ActionListener() { //Dieser ActionListener
@Override
public void actionPerformed(ActionEvent e) {
if(box1.isSelected()) {
value = 1999;
} else if(box2.isSelected()) {
value = 2000;
}
}
});
return value;
}
}
Konkret heißt das für mich: Für den Wert "value" wird immer 0 ausgegeben, nicht etwas 1999 oder 2000.
Was ich mit diesem Programm machen will: Fenster mit 2 JCheckBoxen wird geöffnet, erst, wenn man den Bestätigungsknopf drückt wird mittels isSelected() gecheckt welche JCheckBoxen angekreuzt wurden: Wenn box1 angekreuzt wurde, soll "value" 1999 betragen, bei box2 2000. "value" soll dann am Ende wieder der Main-Klasse übergeben werden.