Swing Timer handledning (Java)
Hej
Jag skulle behöva lite handledning i ett "ReaktionsSpel" som jag håller på med till en uppgift i skolan.
Swing Timern som jag använder mig utav ska göra så att panelen blir GRÖN efter ett random antal sekunder som jag har definerat som "delay". Detta givetvist efter att jag har tryckt på start knappen.
Problemet är dock att panelen blir grön direkt efter att man har tryckt på knappen, den väntar inte med delayen helt enkelt.
Vad kan problemet vara? Här är koden
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
public class ReaktionSpel extends JFrame implements ActionListener{
private Timer timer;
private JButton mainButton = new JButton("Start!");
private JPanel panel = new JPanel();
private int delay;
private Random random;
public ReaktionSpel(){
super("Reaktion Spel");
panel.setLayout(new FlowLayout());
getContentPane().add(panel);
panel.setBackground(Color.yellow);
panel.add(mainButton);
mainButton.addActionListener(this);
Random random = new Random();
int randomNumber = random.nextInt(5000)+1000;
delay = randomNumber;
System.out.print(delay);
}
public void actionPerformed(ActionEvent evt){
Object source = evt.getSource();
timer = new Timer(delay, this);{
panel.setBackground(Color.green);
}
if (source == source)
timer.start();
else if (source != source)
System.out.print("funkar inte");
}
public static void main(String[] args) throws Exception{
ReaktionSpel panel = new ReaktionSpel();
panel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel.setSize(200, 100);
panel.setVisible(true);
}
}
MVH
Karim