1

JavaFXのProgressIndicatorの下にあるデフォルトのテキスト「Done」を変更するにはどうすればよいですか?

4

1 に答える 1

4

これは少しトリッキーですが、可能です:

JavaFX 2.2では、これは次のように作成されます。

ProgressIndicator indicator = new ProgressIndicator();
ProgressIndicatorSkin indicatorSkin = new ProgressIndicatorSkin(indicator);
final Text text = (Text) indicatorSkin.lookup(".percentage");
indicator.progressProperty().addListener(new ChangeListener<Number>() {
    @Override
    public void changed(ObservableValue<? extends Number> ov, Number t, Number newValue) {
        // If progress is 100% then show Text
        if (newValue.doubleValue() >= 1) {
            // This text replaces "Done"
            text.setText("Foo");
        }
    }
});
indicator.skinProperty().set(indicatorSkin);
indicator.setProgress(1);


JavaFX 8 では、ルックアップを行う前に最初に呼び出すapplyCss()必要があり、スキンはもう必要ありません。

ProgressIndicator indicator = new ProgressIndicator();
indicator.progressProperty().addListener(new ChangeListener<Number>() {
    @Override
    public void changed(ObservableValue<? extends Number> ov, Number t, Number newValue) {
        // If progress is 100% then show Text
        if (newValue.doubleValue() >= 1) {
            // Apply CSS so you can lookup the text
            indicator.applyCss();
            Text text = (Text) indicator.lookup(".text.percentage");
            // This text replaces "Done"
            text.setText("Foo");
        }
    }
});
indicator.setProgress(1);

テキスト「Foo」を完成したテキストに変更すると、準備が整います

このコードをテストしましたが、正常に動作するはずです。;-)

于 2013-04-16T13:20:55.033 に答える