Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:摆动计时器等待_Java_Swing_Timer_Swingworker - Fatal编程技术网

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秒,但我想处理可能需要更长时间的情况,接受,那么这里的所有答案可能只是黑暗中的镜头,为什么麻烦,对吧???