我正在尝试将此代码放入 main()
public class TestPane extends JPanel {
private JTextField field;
private JButton button;
private int tick;
private Timer timer;
public TestPane() {
field = new JTextField(10);
field.setEditable(false);
button = new JButton("Start");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button.setEnabled(false);
tick = 0;
timer.start();
}
});
timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Success" + tick);
field.setText(Integer.toString(++tick));
if (tick > 4) {
timer.stop();
button.setEnabled(true);
}
}
});
timer.setInitialDelay(0);
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridwidth = GridBagConstraints.REMAINDER;
add(field, gbc);
add(button, gbc);
}
}
这是做什么的;它会打开一个窗口,然后有一个开始按钮,如果你按下那个开始按钮,它会在一段时间后显示一些文本
我想要做的是将代码放在主函数中,应该发生的是没有开始按钮,当你运行程序时,它应该在某个时间间隔内在该区域设置文本(自动不按下按钮)
我试过但失败了这是代码
public static void main(String args[]) {
//int tick;
// Timer timer;
final Timer timer = new Timer(1000, new ActionListener() {
int tick=0;
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Success" + ++tick);
if (tick > 4) {
((Timer)e.getSource()).stop();
}
}
});
timer.setInitialDelay(0);
System.out.format("About to schedule task.%n");
new NewJFrame();
System.out.format("Task scheduled.%n");
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
我不知道该怎么办?