2012-03-12 99 views
0

我想运行一个小例子,我从这里找到http://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html。但是,我得到Type mismatch: cannot convert 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) 
    { 

    } 

} 
+0

请出示*完整*码你尝试。可能有多种原因导致失败,但它们需要更多的上下文。 – 2012-03-12 18:56:52

回答

3

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

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

这不能编译,因为方法start()是无效的。

只是这条线分割成2:

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

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

0

添加摇摆定时器

import javax.swing.Timer 

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

      }  
     }; 

     timer = new Timer(1000, taskPerformer).start(); 
    }