1

我有一个 Jbutton“突出显示”,单击它会调用 Jprogress Bar。进度条工作正常,直到 100%。

只有在进度条达到 100% 后,我才能显示我的结果。

以下是部分代码:

final JProgressBar progressBar = new JProgressBar();
progressBar.setMaximum(100);
progressBar.setStringPainted(true);


btnNewButton_2.addActionListener(new ActionListener() {


        public void actionPerformed(ActionEvent e) {


                Thread t = new Thread(new Runnable() {
                    public void run() {
                    int i = 1;
                    progressBar.setMinimum(0);
                    progressBar.setMaximum(100);
                    try {
                        while (i <= 100 || true) {
                            progressBar.setValue(i);
                            i++;
                            Thread.sleep(38);

                        }
                    } catch (InterruptedException ex){}

            }});
            t.start();

//我应该把System.out.println("Jprogress Bar达到100%)??

4

2 回答 2

1

在 i++ 之后添加 if 语句 :)

  i++;
  if (i == 100) {
    displayResult();
    return;
  }

不要忘记使用invokeAndWait。当前代码很可能无法正常运行,因为您正在从错误的线程操作 GUI 控件。

于 2013-02-28T16:30:22.760 回答
0
try{
    while (i <= 100 || true) {
        progressBar.setValue(i);
        i++;
        Thread.sleep(38);
     }
     // progress is definitely at 100 now
     // do whatever you need to display result here -- it would be faster than doing the check 
     // if(i==100) in every execution inside the while loop.
     System.out.println("Progress is done!!!");
} catch (....
于 2013-02-28T16:33:31.240 回答