我正在尝试运行一个我在这里http://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html找到的小例子。但是,我在timer = new Timer .....行上得到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 :(得分:3)
您的代码不包含第timer = ...
行。
我相信你试着写:
Timer timer = new Timer(delay, taskPerformer).start();
无法编译,因为方法start()
无效。
将此行分为2:
Timer timer = new Timer(delay, taskPerformer);
timer.start();
编辑,哦,我的假设是正确的。我还没有看到你在代码的第二个片段中使用计时器的第二行。
答案 1 :(得分:0)
添加Swing Timer
import javax.swing.Timer
public void runTimer()
{
ActionListener taskPerformer = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0) {
}
};
timer = new Timer(1000, taskPerformer).start();
}