java - 定时器编译问题

标签 java swing timer

我正在尝试运行一个我从这里找到的小示例 http://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html 。但是,我在timer = new Timer.....行上得到Typemismatch:cannotconvert from void to Timer。我希望有人能帮助我。

  int delay = 1000; //milliseconds
  ActionListener taskPerformer = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          //...Perform a task...
      }
  };
  new Timer(delay, taskPerformer).start();

谢谢

我的代码;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.Timer;


public class MyTimerTest 
{
    private JFrame frame = new JFrame();
    Container contentPane = frame.getContentPane();
    Timer timer;
    int delay = 1000; //a second

    public MyTimerTest()
    {
    }


    public void runTimer()
    {
        ActionListener taskPerformer = new ActionListener() 
        {
            @Override
            public void actionPerformed(ActionEvent arg0) {

            }     
        };

        timer = new Timer(delay, taskPerformer).start();
    }
    /**
     * @param args
     */
    public static void main(String[] args) 
    {

    }

}

最佳答案

您的代码不包含行timer = ...。 我相信您尝试写:

定时器timer = new Timer(delay, taskPerformer).start();

由于方法 start() 无效,因此无法编译。

只需将此行分成 2 行即可:

Timer timer = new Timer(delay, taskPerformer);
timer.start();

编辑,哦,我的假设是正确的。我只是没有看到您在代码的第二个片段中使用计时器的第二行。

关于java - 定时器编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9673068/

相关文章:

Javascript 倒计时在每次运行后变得更快

c# - 1 System.Timers.Timer = 1 个线程?

java - 定时器预定无法在它发生之前找出如何停止它

java - Hibernate ScrollableResults 不返回整组结果

java - 将 PEM 证书或 Java 证书转换为 ASN1 证书

java - ActionListener 只计算鼠标左键单击

java - 如何在没有源代码的情况下查找 J2EE 应用程序中的内存泄漏

java - 通过键盘激活 JButton

java - 如何将 Action 与java中的任何gui界面绑定(bind)

java - 合并 JTable 的两个行过滤器