我正在开发一个javafx项目,其中我提供了一个要填写的文本框。我想计算填充的文本框的百分比...例如100个字符是一个限制,50个填写所以50应该是%值,但它应该自动更改,因为我一直打字。我不知道该怎么做(特别是自动的东西)。我想在进度条上显示%值,如下所示: (忽略按钮)
答案 0 :(得分:1)
您可以自己定义一个与DoubleBinding
绑定的textProperty
,并在每次更改时重新评估其值。
final double max = 100;
TextField text = new TextField();
DoubleBinding percentage = new DoubleBinding() {
{
super.bind(text.textProperty());
}
@Override
protected double computeValue() {
return text.getText().length() / max;
}
};
在DoubleBinding
的静态初始化程序块中绑定textProperty
的{{1}}。这将导致通过TextField
方法重新评估绑定。然后,您可以将其绑定到computeValue
的{{1}}:
textProperty
当然,您也可以将其绑定到Label
之外的其他控件,例如Label lbl = new Label();
lbl.textProperty().bind(percentage.asString());
或Label
:
ProgressBar
然后,此绑定可用于显示已填写的百分比。您还可以查看此documentation by Oracle。此绑定的类型是低级绑定。