繁体   English   中英

如何在GUI Java中添加延迟时间

[英]how to add delay time in GUI java

所以我有一个大小为10的JButton数组,并且所有的内部都有文本“ 7”,例如,我单击button [0],假设我想增加button [1]-[7]内部的值(我已经做到了),但如何添加延迟时间,以使我看起来像一个动画,而不是单击button [0]时所有其他按钮的值立即更改。

我尝试使用在堆栈溢出中在这里找到的其他代码,例如thread.sleep(1000)和此链接

http://best-programming-tricks.blogspot.com/2011/07/how-to-make-loading-delay-time-in-java.html

当我在代码上尝试时,GUI只是滞后了,然后更改了值。 它没有做我想做的事

谢谢

这是我的actionListener的一个例子

buttons[0].addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent arg0) {
                 int i = Integer.parseInt(buttons[0].getText());
                 setValuetoZero(0);
                 int delay = 1000;
                    for(int a =1; a<= i; a++){
                        int getVal = Integer.parseInt(buttons[a].getText());
                        getVal++;
                        String newVal = Integer.toString(getVal);
                        buttons[a].setText(newVal);
                    }
                }

             });

您可能使用javax.swing.Timer。 您可以给构造函数一个ActionLitener,以指定的时间间隔调用它。 您几乎可以将其视为每个间隔都按下的隐藏按钮。

http://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html

睡眠导致延迟的原因是它导致GUI运行的线程进入睡眠状态。 这意味着GUI在睡眠时无法响应输入。 若要使线程休眠,您将需要启动另一个线程,并与GUI同步其对数据的访问,这可能给您带来更多麻烦,而不是值得的。 这就是计时器很好的原因。 它不会中断GUI并在与GUI相同的线程中执行其ActionListener。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM