【发布时间】:2018-06-10 14:37:04
【问题描述】:
我正在尝试创建一个小型 JavaFX 应用程序。
我想要做的是: 我的应用程序有一个 TextField 用户导致插入一个 url。然后单击一个按钮来加载页面。我想要做的是在 TextField 为空或页面加载时禁用此按钮。页面加载完成后,按钮再次启用。
我使用绑定将 TextField 与按钮绑定,因此当 TextField 为空时,按钮被禁用,使用以下代码:
BooleanBinding booleanBind = new BooleanBinding() {
{
super.bind(url.textProperty());
}
@Override
protected boolean computeValue() {
return url.getText().isEmpty();
}
};
loadButton.disableProperty().bind(booleanBind);
现在我还想在页面加载时禁用该按钮。 为了加载页面,我使用以下代码:
loadButton.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent event) {
//loadButton.setDisable(true);
webEngine.load(url.getText());
}
});
评论您可以看到我在页面加载时禁用按钮的方式(我正在使用 ChangeListener 在 WebEngine 完成加载后再次启用它)。但是现在我使用绑定也将它与 TextField 绑定,我不能像这样手动禁用它,因为我收到 java.lang.RuntimeException: A bound value cannot be set. 错误。
如何在页面加载时使用绑定来禁用按钮?
【问题讨论】: