如何在更改jbutton的颜色之间设置延迟

时间:2018-10-22 11:56:57

标签: java delay

int p = 0;
int z = 0;
while (p < plaintext.length) {

    while (z < 26) {
        buttons[plaintext[p]+z*26].setBackground(Color.GREEN);
        z++;
    }

    z = 0;
    p++;                        
}

我将一列26个按钮设置为绿色背景,以26 x 26的按钮网格中的变量 P 作为起点。所以我的问题是,如何在每列更改背景颜色之间有一个延迟,以便它首先显示第一列变为绿色并等待几秒钟,然后显示第二列变为绿色并等待几秒钟,依此类推。 >

先谢谢您

2 个答案:

答案 0 :(得分:0)

使用Thread.sleep(2000);将主线程置于睡眠状态。 2000是毫秒,表示延迟2秒

答案 1 :(得分:0)

借助用户 Guy 提供的链接,我能够更改代码并获得所需的结果。如果有人在想,这是代码。

private static void visual() {

        while (z < 26) {
            buttons[plaintext[p]+z*26].setBackground(Color.GREEN);
            z++;
        }

        z = 0;
        if (p < plaintext.length) p++;

}

final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
        executorService.scheduleAtFixedRate(new Runnable() {
                 @Override
                 public void run() {
                         visual();
                 }
         }, 0, 1, TimeUnit.SECONDS);