如何在 JavaFX 的 ProgressIndicator 下更改默认文本“完成”?
问问题
3882 次
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 回答