这个问题正在扩展另一个我通过Stackoverflow(Update JLabel every X seconds from ArrayList<List> - Java)获得帮助,每隔X秒更新一次标签。无论如何......我现在想要提高或降低计时器的速度,并让它循环遍历文件。
我的print语句如下:( int tM目前设置为300 ...)
private void printWords() {
final Timer timer = new Timer(tM, null);
ActionListener listener = new ActionListener() {
private Iterator<Word> w = words.iterator();
@Override
public void actionPerformed(ActionEvent e) {
if (w.hasNext()) {
_textField.setText(w.next().getName());
//Prints to Console just Fine...
//System.out.println(w.next().getName());
}
else {
timer.stop();
}
}
};
timer.addActionListener(listener);
bPlay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
timer.start();
}
});
bPause.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
timer.stop();
}
});
}
我想做的是使用其他几个按钮来增加或减少速度,更快更慢。
如何在使用中更改定时器间隔?
bFaster.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tM = 100;
}
});
bSlower.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tM = 1000;
}
});
感谢任何想法。
此致, JF
答案 0 :(得分:3)
你能不能做到以下几点?时机不会很完美,但用户可能不会注意到:
bFaster.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tM = 100;
timer.stop();
timer.setDelay( tM );
timer.start();
}
});
bSlower.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tM = 1000;
timer.stop();
timer.setDelay( tM );
timer.start();
}
});