button - 禁用/启用所有标签和文本字段,甚至一些按钮,直到用户单击复选框
问题描述
禁用启用
这些细节是关于我的 VBox 的:
1:一个复选框
2:一个标签和自己的textField
3:一个按钮
所以我想禁用数字 2 和数字 3 ,直到 用户 点击它的复选框。
我覆盖了一个句柄方法,如下所示:
sectionDisable.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
myLabel.setDisable(!myField.isDisable());
myField.setDisable(!myField.isDisable());
mybutton.setDisable(!mybutton.isDisable());
}
});
好的。但正如我告诉你们的那样,我首先希望禁用这些选项,我试过这样:
myLabel.setDisable(true);
myField.setDisable(true);
mybutton.setDisable(true);
但它没有按我的意愿工作!并且它们一直处于禁用状态,不考虑复选框!
启用它们后,如果用户单击复选框,则它们再次禁用。
问题是我不知道如何第一次设置 disable'em。
解决方案
您可以使用 disableProperty() 将控件绑定到 CheckBox。
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
public class Controller implements Initializable {
@FXML public Label myLabel;
@FXML public TextField myTextField;
@FXML public Button myButton;
@FXML public CheckBox myCheckbox;
@Override
public void initialize(URL location, ResourceBundle resources) {
myCheckbox.setSelected(true);
myLabel.disableProperty().bind(myCheckbox.selectedProperty());
myTextField.disableProperty().bind(myCheckbox.selectedProperty());
myButton.disableProperty().bind(myCheckbox.selectedProperty());
}
}
推荐阅读
- javascript - 如何按键排序对象数组?无法正确处理
- php - 在 php 和 sql 中创建访客结帐
- javascript - 触摸/单击和输入事件侦听器未触发 iOS
- python - 如何在 Pandas Dataframe 中向 datetime64 对象添加分钟
- ruby-on-rails - 一个模型在另一个模型中的 CRUD
- react-native - 尽管样式表中的样式,但文本未居中
- linux - 如何使用 ssh-add 从代理中删除身份(pem 文件)
- java - 将整数值添加到数据库表错误
- javascript - 为什么我的 javascript 代码不起作用,即使它在网站 JSFiddle 上工作?文本框的按钮编辑值
- typescript - 如何在不使用“任何”的情况下键入此功能