Может кто-нибудь сказать мне, почему этот таймер работает только один раз?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TimerTest implements ActionListener{
private Robot r;
private Timer t;
private int i;
public TimerTest(){
i = 0;
try {
r = new Robot();
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t = new Timer(1000, this);
t.setRepeats(true);
t.start();
}
public static void main(String [] args){
new TimerTest();
}
@Override
public void actionPerformed(ActionEvent arg0) {
i++;
System.out.println("Action..." + i);
}
Самое смешное, что, если я уменьшу задержку таймера до 100, он будет работать, как и ожидалось.И что еще забавнее, если я удаляю код, в котором я инициализирую робота, он вообще не работает, программа завершается, как только я его запускаю.
Я пробовал это в Windows 7и в Ubuntu (хотя в Ubuntu я вообще не мог использовать робота, поскольку получаю исключение. Возможно, что-то связано с правами).