将Java进度栏与方法执行同步

时间:2019-01-30 23:10:23

标签: java swing swingworker event-dispatch-thread java-threads

我一直在阅读有关进度条的信息,其中有些谜题我并不清楚。 我不明白如何设置进度条来显示给定线程的状态或对调用其他方法的方法的调用。

下面的代码是对我目前基本工作的快速回顾。如您所见,我只是显示一个简单且基本的弹出窗口,其中包含一条琐碎的消息“处理信息”,并且一旦调用了方法完成后,弹出另一个“操作完成!” ... 我知道这是一种不好的方法,尤其是因为它不会向用户提供有关发生情况的任何反馈。

  Thread t = null;
 try {
 if (...) {
  t = new Thread(new Runnable() {
    public void run() {
   JOptionPane.showMessageDialog(null, "processing information ....", "Wait",
                            JOptionPane.INFORMATION_MESSAGE);
                }
            });

            t.start();
        }

        if (response == null)
         waitResponse();


        if (...) {
                        //do some controls
             {
                if (...)
                    throw new AssertionError("you can't edit that field..");
            }

        }
        //
        if (type.equals("A"))
            methodA(1234);
        else if (type.equals("B"))
            methodB(1234);
        else if (type.equals("C")) {
            methodC(1234);
        } else if (type.equals("D")
            methodD(1234);   

 if (...) {
t = new Thread(new Runnable() {
    public void run() {
                    JOptionPane.showMessageDialog(null, "Operation Complete!", "Done",
                            JOptionPane.INFORMATION_MESSAGE);
                }
            });
            t.start();

}

我想了解/学习如何使用进度条显示程序状态。我已经阅读了一些有关 doInBackground(),publish(int i),process(列出块),但我不知道如何使用它们。

0 个答案:

没有答案