如何使用纳秒的javax.swing.timer?

时间:2016-06-02 22:47:26

标签: java swing timer

我需要更快的定时摆动计时器。毫秒是不够的我试图设置它像0.0000001但它没有变得更快;

final javax.swing.Timer tmr=new javax.swing.Timer(1, new ActionListener() {

            public void actionPerformed(ActionEvent e) {


                rsm.setRGB(i, j, rp[i][j]);
                ImageIcon img2 = new ImageIcon(rsm);
                background.setIcon(img2);
                i++;
                if (i==w-1){
                    j++ ;
                    i=0;
                }



            }
        });

2 个答案:

答案 0 :(得分:1)

你不能让定时器加速。

解决方案是每次定时器触发时绘制更多像素。无论如何,人眼都不会注意到这种差异。

  1. 您可以使用图像的宽度/高度计算像素总数。
  2. 你知道真正应该设置的定时器频率不低于上面建议的15m / s。
  3. 您知道要显示整个图像需要多长时间
  4. 进行数学运算以确定每次需要显示的像素数。

答案 1 :(得分:0)

你有几个问题:

  1. 如果计时器仍在执行上次火灾中的代码,则计时器不会被激活。因此,如果您的代码需要10毫秒才能执行,那么将该值设置为小于10将无法​​完成任何任务。
  2. 正如上面人们所说,无论如何都不重要,因为屏幕只会更快地更新。即使您可以让计时器每秒触发数十亿次,您的屏幕也无法快速显示更改。