Hi。
这些详细信息是关于我的VBox:
所以我想禁用 2号和3号直到 用户 单击在其复选框上。
我覆盖如下所示的handle方法:
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);
但是它不能按我的要求工作!并且它们一直处于禁用状态,无需考虑使用复选框!
启用它们后,如果用户单击复选框,则它们将再次禁用。
您可以通过使用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());
}
}