2012-08-11 44 views
4

我一直在尋找通過這個線程讓我的JProgressBar從1到100

How to make Timer countdown along with progress bar?

我想加入到我的代碼,這樣我就可以得到一個不確定JProgressBar和按鈕上的定時器運行, (使用netbeans最好)

因此,當我點擊按鈕時,它穩定地從0運行到100,我真的試圖在我自己的這一點上,真的很生氣,任何幫助都會很好。

+0

什麼是你的問題? *「請不要使用大字」*'Ps'是指後腳本還是請? – 2012-08-12 01:22:25

+0

對我來說,你是Swing的初學者。如果是這樣,那麼最好暫時將IDE留在一邊,並使用普通的老式** TEXT-EDITOR **使您的程序像** JEDIT/NOTEPAD/NOTEPAD ++/NOTEPAD 2 **。這樣你就可以更快更好地學習,而不是使用IDE,其中一半的工作隱藏在你的視野之外。一旦你變得有點好,那麼你可以轉向任何你選擇的IDE。 – 2012-08-12 16:38:12

+0

哦,酷只是看到了這一點,謝謝,我只是喜歡在Netbeans gui creater,但我明白你的意思,我會轉移到記事本++,然後,謝謝,但現在我不想放棄在這個項目看到我在gui和東西上花了很多時間。謝謝你的回覆 – jackdh 2012-08-12 19:35:12

回答

6

憑藉@安德魯example

image

import java.awt.GridLayout; 
import java.awt.event.*; 
import javax.swing.*; 

class CountUpProgressBar extends JPanel { 

    private JProgressBar bar = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100); 
    private JLabel label = new JLabel("", JLabel.CENTER); 
    private Timer timer = new Timer(100, new ActionListener() { 

     private int counter = 1; 

     @Override 
     public void actionPerformed(ActionEvent ae) { 
      label.setText(String.valueOf(counter)); 
      bar.setValue(++counter); 
      if (counter > 100) { 
       timer.stop(); 
      } 
     } 
    }); 

    CountUpProgressBar() { 
     super.setLayout(new GridLayout(0, 1)); 
     bar.setValue(0); 
     timer.start(); 
     this.add(bar); 
     this.add(label); 
     JOptionPane.showMessageDialog(null, this); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 

      public void run() { 
       CountUpProgressBar cdpb = new CountUpProgressBar(); 
      } 
     }); 
    } 
} 
+0

請參閱'setStringPainted(true)'。 – trashgod 2012-08-12 01:35:41

+0

:-),是** setStringPainted(true)**缺失的鏈接,還是故意將它保留爲原樣? – 2012-08-12 16:39:34

+1

@GagandeepBali:啊,你注意到了!是的,我故意忽略它,因爲問題是要求「0..100」而不是百分比。哦,你的意思是在評論中的鏈接?是的,也是故意的,因爲我想爲海報留下很多樂趣。 – trashgod 2012-08-12 16:51:32