Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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 Swing)以时间间隔调用函数,并在标签中显示下一次调用的时间_Java_Swing_Time - Fatal编程技术网

(Java Swing)以时间间隔调用函数,并在标签中显示下一次调用的时间

(Java Swing)以时间间隔调用函数,并在标签中显示下一次调用的时间,java,swing,time,Java,Swing,Time,我在JavaSwing应用程序中有这样的函数。我需要在点击按钮后调用许多函数的间隔和周期。函数必须在jbutton内部调用,因为视图中有一些全局参数用于jbutton函数。您能否帮助我如何在调用函数之间创建时间延迟以及如何在jLabel中显示剩余时间 private void jButton1MouseClicked(java.awt.event.MouseEvent evt) { statusMessageLabel.setText("Proccess started.");

我在JavaSwing应用程序中有这样的函数。我需要在点击按钮后调用许多函数的间隔和周期。函数必须在jbutton内部调用,因为视图中有一些全局参数用于jbutton函数。您能否帮助我如何在调用函数之间创建时间延迟以及如何在jLabel中显示剩余时间

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

        statusMessageLabel.setText("Proccess started.");
        for(int i=0;i< cycles;i++) {

            //display remaining time
            jLabelTimer.setText("00:09:59");
            // after time call many functions and then go again
            manyFunctions();

        } catch (Exception e) {
            System.out.println(e);
        }
        statusMessageLabel.setText("Proccess ended.");
        }
}
private void jButton1MouseClicked(java.awt.event.MouseEvent evt){
statusMessageLabel.setText(“进程已启动”);
对于(int i=0;i
听起来你想看看。有了这些,你可以安排单个通话或定期通话


通过这种方式,您还可以添加一个计时器,定期重置标签文本。

听起来您想看看。有了这些,你可以安排单个通话或定期通话


通过这种方式,您还可以添加一个计时器,定期重置标签文本。

我同意Howard的建议,即Swing计时器可以在此处正常工作(1+),但我对代码的另一个关注点是:

manyFunctions();

这里到底发生了什么?您是否调用了大量耗费时间/cpu的代码?如果是这样,您需要注意不要在主Swing线程EDT上调用它,而是在后台线程中调用它,但同时只在EDT上更新Swing组件。这可以通过使用SwingWorker来简化,您可以在此处阅读更多内容:

我同意Howard的建议,即Swing计时器可以在此处正常工作(1+),但我对您的代码的另一个关注点是:

manyFunctions();
这里到底发生了什么?您是否调用了大量耗费时间/cpu的代码?如果是这样,您需要注意不要在主Swing线程EDT上调用它,而是在后台线程中调用它,但同时只在EDT上更新Swing组件。这可以通过使用SwingWorker来简化,您可以在此处阅读更多内容: