Возможно, вы сможете сделать это с помощью xpath. что-то вроде //tr[contains(@class, 'row') and position() mod 2 = 0]
может работать. Существуют другие вопросы SO, расширяющие подробности о том, как более точно сопоставлять классы.
Использование java.util.Timer.scheduleAtFixedRate()
и java.util.TimerTask
является возможным решением:
Timer t = new Timer();
t.scheduleAtFixedRate(
new TimerTask()
{
public void run()
{
System.out.println("hello");
}
},
0, // run first occurrence immediatetly
2000)); // run every two seconds
Swing Timer также является хорошей идеей многократно повторять вызовы функций.
Timer t = new Timer(0, null);
t.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//do something
}
});
t.setRepeats(true);
t.setDelay(1000); //1 sec
t.start();
Чтобы неоднократно вызывать метод, вам нужно использовать некоторую форму потоковой передачи, которая работает в фоновом режиме. Я рекомендую использовать ScheduledThreadPoolExecutor :
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new Runnable() {
public void run() {
// code to execute repeatedly
}
}, 0, 60, TimeUnit.SECONDS); // execute every 60 seconds