我正在尝试运行一个我从这里找到的小示例 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/