Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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_Updates_Jprogressbar - Fatal编程技术网

Java 如何更新进度条并在需要时停止它?

Java 如何更新进度条并在需要时停止它?,java,updates,jprogressbar,Java,Updates,Jprogressbar,首先,我使用的是EclipseIDE。所以我的问题是:我创建了一个进度条,但我想根据程序所在的位置加载进度条。我有一个刷新按钮,当我点击它时,我的整个程序都会更新。我想要的是一个进度条,它伴随着更新过程,并在更新结束时结束 对不起,如果我的英语不是最好的,但我是一个年轻的葡萄牙语开发人员 我的btn代码 我的进度条码: 请查看此页面: 具体来说,“使用确定进度条”一节应该是您要查找的内容。示例代码有点复杂,但可能与使用这些东西所能得到的一样简单 注意:该示例使用SwingWorker()更新进度

首先,我使用的是EclipseIDE。所以我的问题是:我创建了一个进度条,但我想根据程序所在的位置加载进度条。我有一个刷新按钮,当我点击它时,我的整个程序都会更新。我想要的是一个进度条,它伴随着更新过程,并在更新结束时结束

对不起,如果我的英语不是最好的,但我是一个年轻的葡萄牙语开发人员

我的btn代码

我的进度条码:

请查看此页面:

具体来说,“使用确定进度条”一节应该是您要查找的内容。示例代码有点复杂,但可能与使用这些东西所能得到的一样简单

注意:该示例使用
SwingWorker
()更新进度值。这是因为进度条是在Swing线程中绘制的,如果进程也在该线程上运行,则不会更新进度条。 您需要在非Swing线程的线程上更新程序


编辑1-为您的问题更新代码

看来你对进度条码有了想法。我没有运行它,但你拥有的看起来应该可以运行。下一步是用
update()
methods进程替换计时器。 为此,您需要执行以下操作:

  • 确保
    update()
    方法在与swing线程分离的线程中运行(这里可以使用类似于
    SwingWorker
    的方法)
  • 在更新线程中,您需要调用
    progressBar.setValue(x)
    来更新该条,其中
    x=您的进程有多远
  • 在更新线程中添加更多对
    progressBar.setValue(x)
    的调用。你可以把它们放在任何你喜欢的地方,但最好是在长时间的过程之前和之后
  • 注意:进度条必须使用线程。这意味着你可能会遇到像和这样的事情。小心

    看看这个页面:

    具体来说,“使用确定进度条”一节应该是您要查找的内容。示例代码有点复杂,但可能与使用这些东西所能得到的一样简单

    注意:该示例使用
    SwingWorker
    ()更新进度值。这是因为进度条是在Swing线程中绘制的,如果进程也在该线程上运行,则不会更新进度条。 您需要在非Swing线程的线程上更新程序


    编辑1-为您的问题更新代码

    看来你对进度条码有了想法。我没有运行它,但你拥有的看起来应该可以运行。下一步是用
    update()
    methods进程替换计时器。 为此,您需要执行以下操作:

  • 确保
    update()
    方法在与swing线程分离的线程中运行(这里可以使用类似于
    SwingWorker
    的方法)
  • 在更新线程中,您需要调用
    progressBar.setValue(x)
    来更新该条,其中
    x=您的进程有多远
  • 在更新线程中添加更多对
    progressBar.setValue(x)
    的调用。你可以把它们放在任何你喜欢的地方,但最好是在长时间的过程之前和之后

  • 注意:进度条必须使用线程。这意味着你可能会遇到像和这样的事情。小心

    欢迎来到SO。但是你能进一步澄清你的问题吗?你想要实现什么还不清楚。最好添加一些你已经尝试过的代码。请现在查看我的帖子。谢谢,请澄清。“程序所在地”-这是什么意思?“更新”的过程是什么?每次更新时,进度条是从0%变为100%,还是每次单击按钮时都要执行一个步骤?“第一个是我的按钮,它应该是启动更新的触发器!setText(“”)在这里,只需将字段置为空。之后,向上运行并再次在其中插入文本。如果我表达得不好,我表示歉意,但我不想要滚动条而是进度条!更新按钮应在“更新”按钮的同时触发进度条“上课。因此,可以在更新过程中添加进度条。感谢您的时间和帮助“更新过程是什么?需要多长时间?为什么需要进度条?欢迎使用进度条。但是您可以进一步澄清您的问题吗?您想要实现的目标还不清楚。最好添加一些您尝试过的代码。请现在查看我的帖子。谢谢。请澄清。”程序所在的位置“-这是什么意思?“更新”的过程是什么?每次更新时,进度条是从0%变为100%,还是每次单击按钮时都要执行一个步骤?“第一个是我的按钮,它应该是启动更新的触发器!setText(“”)在这里,只需将字段置为空。之后,向上运行并再次在其中插入文本。如果我表达得不好,我表示歉意,但我不想要滚动条而是进度条!更新按钮应在“更新”按钮的同时触发进度条“上课。因此,可以在更新过程中添加进度条。感谢您的时间和帮助“更新过程是什么?需要多长时间?为什么需要进度条?现在查看我的帖子。我想在“更新”中添加滚动条“上课。你能帮我更好的忙吗?@R.Quintal我还不能对问题发表评论,所以我必须在这里回答:这是你想要触发滚动条的更新按钮的代码吗?或者,
    setText(“”)
    调用的是您希望进度条跟踪的更新吗?我不确定我是否理解你的要求…第一个是我的按钮,应该是触发
    JButton btnActualizar = new JButton("\u21BB");
        btnActualizar.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
    
    
                TxtIpExternoLoja.setText(" ");
                TxtSSIDLoja.setText(" ");
                TxtFirewallLoja.setText(" ");
    
                TxtIpLojaEtho.setText(" ");
                TxtMaskLojaEtho.setText(" ");
                TxtGWLojaEtho.setText(" ");
                TxtDns1LojaEtho.setText(" ");
                TxtDns2LojaEtho.setText(" ");
    
                TxtIpLojaWlan.setText(" ");
                TxtMaskLojaWlan.setText(" ");
                TxtGwLojaWlan.setText(" ");
                TxtDns1LojaWlan.setText(" ");
                TxtDns2LojaWlan.setText(" ");
    
                TxtIpLojaVpn.setText(" ");
                TxtMaskLojaVpn.setText(" ");
                TxtGwLojaVpn.setText(" ");
                TxtDns1LojaVpn.setText(" ");
                TxtDns2LojaVpn.setText(" ");
    
                // DefaultTableModel model = (DefaultTableModel)
                // tablePing.getModel();
                // model.setRowCount(0);
                TxtTime.setText(" ");
    
                i = 0;
                t.start();
                btnActualizar.setEnabled(false);
                update();
    
            }
        });
    
    JProgressBar progressBar = new JProgressBar(0, 15);
        GridBagConstraints gbc_progressBar = new GridBagConstraints();
        gbc_progressBar.insets = new Insets(0, 0, 0, 5);
        gbc_progressBar.gridx = 3;
        gbc_progressBar.gridy = 0;
        PanelBotoes.add(progressBar, gbc_progressBar);
        GridBagConstraints gbc_btnImprimir = new GridBagConstraints();
        gbc_btnImprimir.insets = new Insets(0, 0, 0, 5);
        gbc_btnImprimir.gridx = 5;
        gbc_btnImprimir.gridy = 0;
        PanelBotoes.add(btnImprimir, gbc_btnImprimir);
        progressBar.setStringPainted(true);
        progressBar.setValue(0);
    
        t = new Timer(interval, new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                if (i == 15) {
                    t.stop();
                    btnActualizar.setEnabled(true);
                } else {
                    i++;
                    progressBar.setValue(i);
                }
            }
        });