Hallo,
Ich versuche grad ein Programm zu schreiben, in dem meine GUI lediglich aus 1 Frame und 1 Button besteht. Beim klick auf den Button soll das Fenster geschlossen werden. (Es soll nur das Fenster geschlossen werden, nicht das Programm beendet werden, daher setvisible(false) ).
Das ganze versuche ich mit einer anonymen inneren Klasse zu lösen. Für das Beispiel hier vielleicht nicht unbedingt nötig, aber ich möchte es trozdem darüber machen, damit ich den Umgang mit den anonymen Klassen lerne.
Das ganze funktioniert auch, aber ich frage mich, warum er fordert, dass der Button b final sein soll, sobald ich in der actionPerformed() auf den Button mit b.tueirgendwas() zugreifen will?!
Ich versuche grad ein Programm zu schreiben, in dem meine GUI lediglich aus 1 Frame und 1 Button besteht. Beim klick auf den Button soll das Fenster geschlossen werden. (Es soll nur das Fenster geschlossen werden, nicht das Programm beendet werden, daher setvisible(false) ).
Das ganze versuche ich mit einer anonymen inneren Klasse zu lösen. Für das Beispiel hier vielleicht nicht unbedingt nötig, aber ich möchte es trozdem darüber machen, damit ich den Umgang mit den anonymen Klassen lerne.
Das ganze funktioniert auch, aber ich frage mich, warum er fordert, dass der Button b final sein soll, sobald ich in der actionPerformed() auf den Button mit b.tueirgendwas() zugreifen will?!
Java:
import java.awt.event.*;
import javax.swing.*;
public class App {
public static void main(String[] args) {
final JFrame f = new JFrame();
f.setSize(300, 300);
f.setVisible(true);
JButton b = new JButton("Button");
f.add(b);
ActionListener a = new ActionListener(){
public void actionPerformed(ActionEvent e) {
f.setVisible(false);
}
};
b.addActionListener(a);
}
}
Zuletzt bearbeitet: