小编Pot*_*ato的帖子

如何在java swing应用程序中暂停/休眠/等待?

我正在使用JLabel创建动画,

public void updateLabels() {
      label.setIcon(new ImageIcon(new Paint().getScaledImage(paint[currentIndexLabel].imageCALA,300,300)));
      label_1.setIcon(new ImageIcon(new Paint().getScaledImage(paint[currentIndexLabel].imageStates,300,300)));
      label_2.setIcon(new ImageIcon(new Paint().getScaledImage(paint[currentIndexLabel].imageStrategies,300,300)));
      label_3.setIcon(new ImageIcon(new Paint().getScaledImage(paint[currentIndexLabel].imagekD,300,300)));

      currentIndexLabel++;
}
Run Code Online (Sandbox Code Playgroud)

我有一个更新标签的按钮

btn.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
        while (currentIndexLabel != paint.length-1) {
            updateLabels();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何等待,例如1000毫秒,直到下一次改变.当我添加这个:

try { Thread.sleep(1000); } catch (Exception e){}
Run Code Online (Sandbox Code Playgroud)

进入我的ActionListener:

btn.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent arg0) {
           while (currentIndexLabel!=paint.length-1) {
             updateLabels();
             try { Thread.sleep(1000); } catch (Exception e){}
       }
    }
 });
Run Code Online (Sandbox Code Playgroud)

它不起作用.它只是停了一会儿,我看不到第一帧和最后一帧之间的变化.是否可以在不停止程序的情况下等待1000毫秒?当我删除while循环并尝试部分,然后单击我的按钮时,它变化很好......

我怎样才能做到这一点?

java swing

0
推荐指数
1
解决办法
152
查看次数

标签 统计

java ×1

swing ×1