2013-07-23 20 views
0

我有一個簡單的JDialog有一個進度條,我希望它有一個JLabel即是這樣:製作的JDialog已經continuoulsly改變文字像「的工作......」

工作。 - >正在工作.. - >正在工作...大約每0.25秒。

我只是運行連續循環重複設置JLabel的文本?

我知道這肯定是一個簡單的解決方案,但我似乎無法在任何地方找到它!

Per @ David的回覆如下。這裏是我的WorkingDialog的散裝(延伸的JDialog)構造函數:

final JLabel lblWorking = new JLabel("Working."); 
    contentPanel.add(lblWorking, gbc_lblWorking); 

    SwingWorker<Void, Void> sw = new SwingWorker<Void, Void>() 
    { 

     @Override 
     protected Void doInBackground() throws Exception 
     { 
      while (!isCancelled()) 
      { 
       if (!lblWorking.getText().equals("Working...")) 
       { 
        lblWorking.setText("Working."); 
       } else 
       { 
        lblWorking.setText(lblWorking.getText() + "."); 
       } 
      } 

      return null; 
     } 
    }; 

    setVisible(true); 
    sw.run(); 

而當我把新WorkingDialog()的框架出現,但多數民衆贊成它。有誰知道爲什麼?

感謝,

豐富

回答

0

創建一個後臺程序,將更新標籤每0.25秒。不要忘記在更新標籤時使用SwingUtils.invokeLater()。

我想你應該也可以用SwingWorker來完成它。

乾杯

+0

我一直在閱讀很多關於SwingWorker的內容。我如何使用SwingWorker來解決這個問題? –

+0

我也更新了我的問題 –

+0

我明白了。我結束了使用SwingWorker。感謝您的建議。 –