Hallo,
Beim erstellen eines JFrames geht man ja wie folgt vor:
Dies funktioniert.
Wenn ich aber nun einen Button auf meinem Frame setzen möchte, muss ich ja mit Listenern arbeiten, wenn mein Button denn etwas machen soll, wenn man ihn anklickt.
Das Problem bzw. meine Frage: Wieso funktioniert es plötzlich nicht mehr, mit einem direkten Objekt der Klasse JFrame beim regestrieren des Listeners?
Hier ein Beispiel wie es nicht funktioniert (Mit Button): Die Regest. des Listeners beim Button nimmt er nicht an...
Die Regest. beim Button des Listeners nimmt er nur an, wenn ich eine Unterklasse von JFrame erzeuge und von der Unterklasse dann mein Frame erzeuge. Aber wieso? Also wieso gehts nicht mit dem oberen Beispiel?
Hier noch das Beispiel wie es funktioniert:
Beim erstellen eines JFrames geht man ja wie folgt vor:
Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class App {
public static void main(String[] args) {
JFrame f = new JFrame();
f.setVisible(true);
f.setSize(200, 200);
}
}
Dies funktioniert.
Wenn ich aber nun einen Button auf meinem Frame setzen möchte, muss ich ja mit Listenern arbeiten, wenn mein Button denn etwas machen soll, wenn man ihn anklickt.
Das Problem bzw. meine Frage: Wieso funktioniert es plötzlich nicht mehr, mit einem direkten Objekt der Klasse JFrame beim regestrieren des Listeners?
Hier ein Beispiel wie es nicht funktioniert (Mit Button): Die Regest. des Listeners beim Button nimmt er nicht an...
Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class App implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
public static void main(String[] args) {
JFrame f = new JFrame();
JButton b = new JButton("Schließen");
f.setVisible(true);
f.setSize(200, 200);
f.add(b);
b.addActionListener(f);
}
}
Die Regest. beim Button des Listeners nimmt er nur an, wenn ich eine Unterklasse von JFrame erzeuge und von der Unterklasse dann mein Frame erzeuge. Aber wieso? Also wieso gehts nicht mit dem oberen Beispiel?
Hier noch das Beispiel wie es funktioniert:
Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class App extends JFrame implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
public static void main(String[] args) {
App f = new App();
JButton b = new JButton("Schließen");
f.setVisible(true);
f.setSize(200, 200);
f.add(b);
b.addActionListener(f);
}
}