web-dev-qa-db-ja.com

jprogressbarにテキストを追加する方法は?

可用性ステータスを示すためにjprogressbarを使用しています。 プログレスバー内に40%[仮定]のテキストを表示したい。どうやってするの?利用可能在庫値に応じてテキストが変更されました

18
Siddhu

以下を使用できます。

初期化:

progressBar.setStringPainted(true);

更新:

progressBar.setValue(newValue);
41
Reimeus
  • setStringPainted(true)を使用して、完了した作業のパーセンテージを表示します。

  • setValue()を使用すると、増分値setString()を設定して、完了時に終了メッセージを表示できます。

これが私のコードベースの例です:

final JProgressBar bar = new JProgressBar(0 , 100);  // 0 - min , 100 - max
bar.setStringPainted(true);
panel.add(bar);                   // panel is a JPanel's Obj reference variable

JButton butt = new JButton("start");
butt.addActionListener(){

    public void actionPerformed(){
        new Thread(new Runnable(){
            public void run(){
                int x = 0;
                while(x<=100) {
                    x++;
                    bar.setValue(x);        // Setting incremental values
                    if (x ==  100 ){
                        bar.setString("Its Done");   // End message
                        try{
                            Thread.sleep(200);
                        }catch(Exception ex){ }
                    }
                }).start();
            }
        });
4
3
mKorbel

これはバー内の進行状況を表示します

   progressBar.setStringPainted(true);
2
Alexander

これは、進行状況バー内の進行状況のパーセンテージを示しています

progressBar.setStringPainted(true);
1
Avishka92

あなたの[assumption]は、表示する文字列の一部です。その場合、完全なソリューションは次のようになります。

private static final String PROGRESS_MASK = "%d%% [assumption]";

public void someMethod() {
  ...

  progressBar.addChangeListener(new ChangeListener() {
    @Override
    void stateChanged(ChangeEvent e) {
      progressBar.setString(String.format(PROGRESS_MASK,
        progressBar.getValue()));
    }
  }

  progressBar.setStringPainted(true);
}

...パーセンテージを表示するだけのデフォルトの文字列に依存することができないため。

0
Duncan Jones

ここで注意すべき2つのこと。それらは、

1)setStringPaintedメソッドを使用して、JProgressBarのpaintString変数を設定する必要があります。あなたはそのようにすることができます

jprogressBar.setStringPainted(true)

あなたがこれをしなければならないのは、

isStringPainted()

プログレスバーが値または進捗率を表示する必要がある場合、メソッドはtrueを返す必要があります。

2)カスタム値でカスタマイズするには、次を使用してjprogressBarインスタンスにカスタムを設定します

jprogressBar.setString(customString)

その後、正常に動作するはずです。

0
sakthisundar

これは、プログレスバーのステータスに応じて値(つまり10%または40%...)を設定する方法を示すチュートリアルリンクです http://docs.Oracle.com/javase/tutorial/uiswing /components/progress.html

0
happy