Hallo,
(denke mal das Thema ist hier besser aufgehoben als im GUI-Unterforum, oder?!)
ich möchte ein ganz einfaches Programm schreiben, das ein Fenster öffnet, das 3 Buttons (Plus, Minus und Exit) enthält sowie ein Label (könnte auch eine TextComponent sein, soll jedenfalls nur anzeigen - für die Frage vermutlich unerheblich).
Beim Start zeigt das Label 0 an. Ihr ahnt es, wenn der Plus-Button gedrückt wird, soll der im Label angezeigte Wert um 1 erhöht werden, wenn der Minus-Button gedrückt wird eben um 1 vermindert.
Bislang sieht der code so aus, der ActionListener:
Das Hauptprogramm:
Wie man sieht, wird der neue Wert des Zählers bislang nur in der Konsole ausgegeben.
Mal abgesehen davon, daß an dem Programm bestimmt vieles zu kritisieren ist, folgene Fragen:
- Wie bekomme ich es hin daß der neue Wert im Label angezeigt wird?
- Mir kommt das seltsam vor, daß die Variable zaehler ein attribut vom ActionListener ist. Nach meiner Vorstellung sollte der Zähler ein Attribut von main sein. Jedenfals nicht vom ActionListener. Wie kann denn Der ActionListener dafür sorgen, daß eine Variable "ausserhalb" verändert werden kann?
Habe folgendes Codebeispiel gefunden, ein Alptraum, vlt. sollte ich doch besser auf H9Q+ umsteigen
Java/GUI Beispiel Zähler ? ZUM-Wiki
(denke mal das Thema ist hier besser aufgehoben als im GUI-Unterforum, oder?!)
ich möchte ein ganz einfaches Programm schreiben, das ein Fenster öffnet, das 3 Buttons (Plus, Minus und Exit) enthält sowie ein Label (könnte auch eine TextComponent sein, soll jedenfalls nur anzeigen - für die Frage vermutlich unerheblich).
Beim Start zeigt das Label 0 an. Ihr ahnt es, wenn der Plus-Button gedrückt wird, soll der im Label angezeigte Wert um 1 erhöht werden, wenn der Minus-Button gedrückt wird eben um 1 vermindert.
Bislang sieht der code so aus, der ActionListener:
Java:
import java.awt.event.*;
class MyActionListener implements ActionListener {
int zaehler = 0;
public void actionPerformed(ActionEvent ae) {
String s = ae.getActionCommand();
if (s.equals("Exit")) {
System.out.println("Programm wird beendet");
System.exit(0);
}
if (s.equals("Plus")) {
zaehler++;
System.out.println(zaehler);
}
if (s.equals("Minus")) {
zaehler--;
System.out.println(zaehler);
}
}
}
Java:
import java.awt.*;
import java.awt.event.*;
public class Main {
public static void main(String[] args){
Button b;
Label l = new Label("1", Label.CENTER);
ActionListener a = new MyActionListener();
Frame f = new Frame();
f.add(l, BorderLayout.NORTH);
f.add(b = new Button("Plus"), BorderLayout.WEST);
b.addActionListener(a);
f.add(b = new Button("Minus"), BorderLayout.CENTER);
b.addActionListener(a);
f.add(b = new Button("Exit"), BorderLayout.EAST);
b.addActionListener(a);
f.pack();
f.setVisible(true);
}
}
Wie man sieht, wird der neue Wert des Zählers bislang nur in der Konsole ausgegeben.
Mal abgesehen davon, daß an dem Programm bestimmt vieles zu kritisieren ist, folgene Fragen:
- Wie bekomme ich es hin daß der neue Wert im Label angezeigt wird?
- Mir kommt das seltsam vor, daß die Variable zaehler ein attribut vom ActionListener ist. Nach meiner Vorstellung sollte der Zähler ein Attribut von main sein. Jedenfals nicht vom ActionListener. Wie kann denn Der ActionListener dafür sorgen, daß eine Variable "ausserhalb" verändert werden kann?
Habe folgendes Codebeispiel gefunden, ein Alptraum, vlt. sollte ich doch besser auf H9Q+ umsteigen
Java/GUI Beispiel Zähler ? ZUM-Wiki
Zuletzt bearbeitet von einem Moderator: