可以吗?我尝试这样做,但它给出了编译错误:
Timer t = new Timer(1000,new ActionListener() {
public void actionPerformed(ActionEvent event) {
}
});
以下是整个参考代码
完整代码:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Timer;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class Scratch {
public static void main(String[] args) {
JFrame frame = new JFrame("Moving Rectangle");
frame.setSize(1000,700);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JComponent() {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
}
});
Timer t = new Timer(1000,new ActionListener() {
public void actionPerformed(ActionEvent event) {
}
});
}
}
我需要输入内容,因为我的问题主要是代码。
答案 0 :(得分:1)
但它给出了编译错误:
当您提出错误发布的问题时,我们不必猜测。
当我将代码添加到空的main()方法时,我得到以下内容,因为我在测试类中有很多标准的import语句:
Main.java:21: error: reference to Timer is ambiguous, both class java.util.Timer in java.util and class javax.swing.Timer in javax.swing match
Timer t = new Timer(1000, new ActionListener()
解决方案可以是:
javax.swing.Timer t = new javax.swing.Timer(1000, new ActionListener()
避免混淆。
编辑:
你看过我上面的解决方案了吗?请注意我是如何使用javax.swing.Timer的?
import java.util.Timer;
不要使用java.util.Timer。使用Swing,您需要使用Swing Timer,因此代码在EDT上执行。
改为使用:
import javax.swing.Timer;