基本上,我正在尝试有一张酒店的预订表,有两个选择:
这就是场景:https://imgur.com/a/5GdgFAg
我一直在尝试创建一个文本字段"Nombre de lits“。只要选择了单选按钮"couple“,就应该禁用它。当我点击单选按钮"Lits separés“时,它应该是启用的。但文本字段仍然处于禁用状态,即使我单击了该按钮。
我一直在试着让它工作,但没有运气。这是我的代码:
package controleur;
import java.time.LocalDate; import java.time.format.DateTimeFormatter;
import accesBD.ClientDAO; import javafx.beans.binding.Bindings; import javafx.beans.binding.BooleanBinding; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.DatePicker; import javafx.scene.control.RadioButton; import javafx.scene.control.TextField; import javafx.scene.control.ToggleGroup; import metier.Client;
public class ReservationControleur {
private ClientDAO bd = new ClientDAO();
@FXML
private TextField nom;
@FXML
private TextField prenom;
@FXML
private TextField nationalite;
@FXML
private DatePicker datedebut;
@FXML
private TextField numtel;
@FXML
private DatePicker datefin;
@FXML
private RadioButton couple;
@FXML
private RadioButton litss;
@FXML
private RadioButton douche;
@FXML
private RadioButton bain;
@FXML
private TextField nbrlits;
@FXML
private RadioButton standard;
@FXML
private RadioButton inclusive;
@FXML
private RadioButton vip;
@FXML
private Button valider;
@FXML
private Button anuuler;
private ToggleGroup group = new ToggleGroup();
private ToggleGroup group1 = new ToggleGroup();
@FXML private void isClicked(ActionEvent event){
}
public void initialize() {
datedebut.setValue(LocalDate.now());
couple.setToggleGroup(group);
couple.setSelected(true);
litss.setToggleGroup(group);
douche.setToggleGroup(group1);
bain.setToggleGroup(group1);
douche.setSelected(true);
if(couple.isSelected())
nbrlits.setDisable(true);
else
nbrlits.setDisable(false);
}
@FXML
void confirmer(ActionEvent event) {
int ntel = Integer.parseInt(numtel.getText());
Client c = new Client(nom.getText(), prenom.getText(), nationalite.getText(), ntel);
bd.add(c);
}
@FXML
void remiseazero(ActionEvent event) {
}
}
有人能帮上忙吗?
发布于 2018-09-23 20:43:07
在初始化ReservationControleur时,检查哪个RadioButton被选中的代码只执行一次,而这并不是您所需要的。
您希望在每次选择"couple“RadioButton时将"nbrlits”TextView的状态更改为"disabled“,因此需要将这两个属性绑定在一起。
更改此设置:
if(couple.isSelected())
nbrlits.setDisable(true);
else
nbrlits.setDisable(false);
}
如下所示:
//set "nbrlits" to disabled state each time "couple" radiobutton is selected
nbrlits.disableProperty().bind(couple.selectedProperty());
https://stackoverflow.com/questions/52465852
复制相似问题