不明白为什么SCHEDULE总是强调并且不工作(我尝试分成几个班级,同样的事情,只是无法解决问题所在。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class assertion extends JFrame {
JTextField curTime, xT, yT;
Timer timer;
public static void main(String[] args){
new assertion();
}
public assertion() {
JFrame window = new JFrame("ВИ Кликер");
window.setSize(400,400);
JPanel mainframe=new JPanel();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel x=new JLabel();
x.setText("X-Coordinate");
mainframe.add(x);
xT=new JTextField(10);
mainframe.add(xT);
window.getContentPane().add(mainframe);
window.pack();
window.setVisible(true);
JLabel y=new JLabel();
y.setText("Y-Coordinate");
mainframe.add(y);
yT=new JTextField(10);
mainframe.add(yT);
window.getContentPane().add(mainframe);
window.pack();
window.setVisible(true);
JLabel time=new JLabel();
time.setText("Time");
mainframe.add(o);
curTime = new JTextField(10);
mainframe.add(curTime);
window.getContentPane().add(mainframe);
window.pack();
window.setVisible(true);
JButton gO =new JButton();
gO.setText("GO");
mainframe.add(gO);
gO.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
timer();
}
});
}
public void timer(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 1);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();
timer = new Timer();
timer.schedule(new assertion(), time);
}
public void mouse() throws AWTException {
String xx = xT.getText(), yy = yT.getText();
int xxx = Integer.parseInt(xx), yyy = Integer.parseInt(yy);
Robot robot = new Robot();
robot.mouseMove(xxx, yyy);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
}
}
答案 0 :(得分:1)
Timer
和java.util.Timer
之间的课程javax.swing.Timer
不明确,因此timer.schedule
无法解析。
删除包导入
import java.util.*;
并且只导入您需要的类,例如
import java.util.Calendar;
javax.swing.Timer
是与Swing一起使用的正确Timer
,因此您需要重构代码以解决此问题。无需创建assertion
的新实例 - 只需确保所有方法都调用Swing Timer ActionListener
。
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// perform timer actions
}
});
除此之外:Java命名约定显示类以大写字母开头,例如Assertion
答案 1 :(得分:1)
Assertion不会扩展所需的TimerTask。
创建一个匿名类,就像我在另一个问题主题中向您展示的那样。