为什么在使用thread.sleep时jbutton的背景颜色没有改变?

时间:2019-05-31 23:18:29

标签: java eclipse multithreading jbutton thread-sleep

我正在尝试更改按钮的背景颜色,请稍等一下,然后再次更改。但是,我尝试添加一个将执行多次的循环,并且在两者之间使用Thread.sleep来查看更改。但是背景颜色没有改变。

我尝试在每次更改System.out.println()时都放置一个,并且确实在控制台中每指定的时间显示一条消息。

for (int i = 0; i < 5; i++) {
        Random rand = new Random();
        int temp = rand.nextInt(6);
        System.out.println(temp);

arr []是和int数组组成的数组,每个包含需要更改的按钮。

for (int element : arr[temp])
            buttons[element].setBackground(Color.black);
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        for (int element : arr[temp])
            buttons[element].setBackground(Color.white);
    }

我也尝试使用计时器:

Timer timer = new Timer(500, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (!stop) {
                    for (int element : arr[temp])
                        buttons[element].setBackground(Color.black);
                } else {
                    ((Timer) e.getSource()).stop();
                }
            }

,但仍然无法正常工作。布尔停止也没有被识别。

0 个答案:

没有答案