J
james234
Gast
Hallo!
Ich versuche gerade ein Programm zu schreiben, das jede 500ms die Farbe des Fensters wechselt.
Ich mache das mit einem Swing-Timer, dieser löste bei 500ms ein ActionEvent aus. Ich verstehe nicht, warum das nicht funktioniert was ich da fabriziert habe.
Ich meine wenn der rein geht in das Actionevent schaut er ob der Hintergrund rot oder grün ist, wenn er grün ist macht er auf rot und umgekehrt? Müsste doch eigentlich funktionieren?
Oder muss ich da was mit setDelay machen? Mit funktioniert es aber auch nicht. Bitte helft mir auf die Sprünge.
Danke!
mfg James
Hier der Code:
Ich versuche gerade ein Programm zu schreiben, das jede 500ms die Farbe des Fensters wechselt.
Ich mache das mit einem Swing-Timer, dieser löste bei 500ms ein ActionEvent aus. Ich verstehe nicht, warum das nicht funktioniert was ich da fabriziert habe.
Ich meine wenn der rein geht in das Actionevent schaut er ob der Hintergrund rot oder grün ist, wenn er grün ist macht er auf rot und umgekehrt? Müsste doch eigentlich funktionieren?
Oder muss ich da was mit setDelay machen? Mit funktioniert es aber auch nicht. Bitte helft mir auf die Sprünge.
Danke!
mfg James
Hier der Code:
Java:
public class MainFrame extends JFrame {
private JPanel contentPane;
// private JButton button1;
// private JButton button2;
private Timer timer1;
// private JPanel panel1;
public MainFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
FrameInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void FrameInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(new BorderLayout());
setSize(new Dimension(400, 300));
setTitle("Frame Title");
//Timer(int delay, ActionListener listener);
//timer1 = new Timer(500, timer1_ActionListener);
contentPane.setBackground(Color.GREEN);
timer1 = new Timer(500, new timer1_ActionListener());
timer1.addActionListener(new timer1_ActionListener());
timer1.start();
}
private class timer1_ActionListener implements ActionListener {
public void actionPerformed(ActionEvent ae) {
// System.out.println("asdf");
if(contentPane.getBackground() == Color.GREEN)
{
contentPane.setBackground(Color.RED);
timer1.setDelay(500);
}
else
{
contentPane.setBackground(Color.GREEN);
timer1.setDelay(500);
}
}
}
}