2

setStringPainted()ofを使用するJProgressBarと、処理完了量がパーセンテージで表示されます。しかし、パーセンテージではなく残り時間を表示できるように

カスタマイズするにはどうすればよいですか?setStringPainted()

4

2 に答える 2

4

setString()進捗文字列を設定します。そのプロパティの場合null、単純なパーセンテージのみが表示されます。これは、ドキュメントで明確に指摘されています。

setString

public void setString(String s)

進捗文字列の値を設定します。デフォルトでは、この文字列はnullであり、単純なパーセント文字列を使用する組み込みの動作を意味します。カスタムの進行状況文字列を提供していて、組み込みの動作に戻したい場合は、文字列を に戻しnullます。

進捗文字列は、isStringPainted メソッドが true を返す場合にのみ描画されます。

パラメーター:

s– プログレス文字列の値

于 2012-02-14T06:26:24.963 に答える
3

興味深いことに (読んで: 私は驚いています :-) getString をオーバーライドして、値に依存する進捗文字列を自分で実装する必要があります。

    final JProgressBar bar = new JProgressBar() {

        @Override
        public String getString() {
            int max = getMaximum();
            return super.getString() + (max - getValue());
        }

    };
    bar.setStringPainted(true);
    ActionListener l = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            bar.setValue(bar.getValue() + 1);
        }
    };
    bar.setString("missing: ");
    new Timer(500, l).start();
于 2012-02-14T07:19:28.177 に答える