Java中的计时器问题-设置setRepeat(false)时时间未停止
我希望有人能帮我解决计时器的问题。运行timer.start()时,计时器将启动。然而,它似乎在无休止地重复 我只需要定时器执行一次。如果timer.setRepeats(false)不工作,如何实现这一点Java中的计时器问题-设置setRepeat(false)时时间未停止,java,timer,javax.swing.timer,Java,Timer,Javax.swing.timer,我希望有人能帮我解决计时器的问题。运行timer.start()时,计时器将启动。然而,它似乎在无休止地重复 我只需要定时器执行一次。如果timer.setRepeats(false)不工作,如何实现这一点 ActionListener updatePane = new ActionListener() { public void actionPerformed(ActionEvent ae) { try { msgPaneDoc.ins
ActionListener updatePane = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
msgPaneDoc.insertString(msgPaneDoc.getLength(), "CLICK",
msgPaneDoc.getStyle("bold_style"));
} catch (BadLocationException ex) {
}}};
Timer timer = new Timer(3000,updatePane);
timer.start();
timer.setRepeats(false);
你必须从内部调用它 试着用或 示例代码:
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
System.out.println("Hello");
}
};
Timer timer = new Timer(1000, actionListener);
timer.start();
timer.setRepeats(false);
}
});
这仍然会在计时器上生成连续重复。我之所以知道这一点,是因为在“msgPaneDoc”中插入“CLICK”字符串时会重复使用我与您共享的示例代码,该代码会一次性打印
Hello
。它为我一次打印Hello
。只需将您的问题更新为编辑部分,以显示您现在正在做什么。现在,我刚刚将u发送的代码放入If语句中,这样当我单击按钮时,它将启动计时器。我把你的确切代码放在上面,但问候仍在重复。