hi! als übung soll ich ein programm schreiben, welches zwei threads hat. jeder thread hat einen frame, und soll darin seperat arbeiten. nur ein triviales problem, man zählt eine zahl hoch oder runter, ist sie negativ oder positiv ändert sich die hintergrudnfarbe - das is aber nich mein problem.
wenn ich in der Fenster-klasse die zeile Fenster frm = new Fenster(); auskommentiere, startet dsa programm ohne viele init-fehlermeldungen zu werfen, macht logischerweise aber nichts.
wie kann ihc in der actionPerformed methode auf den frame zugreifen ohne ihn als globale variable zu setzen?
das mti der globalen variable hat allerdings in einem anderen projekt funktioniert - als statische variable.
kann ja hier nich statisch nehmen, da die beiden threads ja unabhängig voneinander sein sollen - oder liegt da ein irrtum vor?
Code:
public class raufrunter {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Automatisch erstellter Methoden-Stub
Fenster fenster = new Fenster();
/*
new Thread (fenster, "second").start();
fenster.run();
*/
}
}
Code:
class WindowQuitter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
Code:
class Fenster extends Frame implements ActionListener, Runnable {
Button groesser = new Button("groesser");
Button kleiner = new Button("kleiner");
TextField ausgabe = new TextField("0");
Fenster frm = new Fenster();
int wert = 0;
Fenster() {
setLayout(new FlowLayout());
groesser.addActionListener(this);
kleiner.addActionListener(this);
add(groesser);
add(ausgabe);
add(kleiner);
frm.setSize(200, 150);
frm.setVisible(true);
WindowQuitter wquit = new WindowQuitter();
frm.addWindowListener(wquit);
}
public void run() {
Thread thread = Thread.currentThread();
}
public void actionPerformed(ActionEvent evt) {
if(evt.getActionCommand().equals("groesser")) {
wert++;
}
if(evt.getActionCommand().equals("kleiner")) {
wert--;
}
/*ausgabe.setText("" + wert);*/
repaint();
}
}
wenn ich in der Fenster-klasse die zeile Fenster frm = new Fenster(); auskommentiere, startet dsa programm ohne viele init-fehlermeldungen zu werfen, macht logischerweise aber nichts.
wie kann ihc in der actionPerformed methode auf den frame zugreifen ohne ihn als globale variable zu setzen?
das mti der globalen variable hat allerdings in einem anderen projekt funktioniert - als statische variable.
kann ja hier nich statisch nehmen, da die beiden threads ja unabhängig voneinander sein sollen - oder liegt da ein irrtum vor?