Java:摆动计时器等待
我有这样一个密码:Java:摆动计时器等待,java,swing,timer,swingworker,Java,Swing,Timer,Swingworker,我有这样一个密码: final SwingWorker worker = new SwingWorker() { @Override protected Object doInBackground() throws Exception {...}; } Timer timer=new Timer(10000, new ActionListener() { @Override public void actionPerformed(Acti
final SwingWorker worker = new SwingWorker() {
@Override
protected Object doInBackground() throws Exception {...};
}
Timer timer=new Timer(10000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
worker.execute();
}
});
timer.start();
有时worker过程需要10秒以上,但有时需要3-4秒,因此如何设置计时器以等待worker的完全执行?有什么建议吗?请参阅
SwingWorker
类的javadoc:
在工作线程上调用doInBackground方法之前,SwingWorker将状态属性更改为StateValue.STARTED通知所有PropertyChangeListeners。doInBackground方法完成后,将执行done方法。然后SwingWorker通知所有PropertyChangeListeners状态属性更改为StateValue.DONE
因此,当
SwingWorker
完成时,会触发事件。附加一个侦听器并在正确的事件上重新激活您的计时器。Swing Timer在SwingWoker类中???,如果是,则将其移出SwingWorker类,否则发布short和runnable抱歉,我没有正确重写它。当然,计时器超出SwingWorker类,然后发布一个SSCCE演示您的问题,否则您的问题太难回答…worker更新RSS提要,因此它取决于当前网站可用性、连接速度等,因此不必在此处发布完整代码。重要的是,执行通常不到10秒,但我想处理可能需要更长时间的情况,接受,那么这里的所有答案可能只是黑暗中的镜头,为什么麻烦,对吧???