为了账号安全,请及时绑定邮箱和手机立即绑定

JavaFX: 2 radio buttons are disabling a text field

JavaFX: 2 radio buttons are disabling a text field

慕娘9325324 2021-10-06 12:34:46
基本上,我正在尝试为酒店提供预订表格,有两种选择:要么是带双人床的“情侣房”,里面不能有其他床,要么一间带分隔床的房间,最多可容纳 4 张床。这是场景:https : //imgur.com/a/5GdgFAg我一直在尝试制作一个文本字段“Nombre de lits”。只要选择了单选按钮“夫妇”,就应该禁用它。当我点击单选按钮“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);        }任何人都可以帮忙吗?
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

检查选择哪个 RadioButton 的代码只执行一次 - 当 ReservationControleur 被初始化时,这不是你需要的。


每次选择“情侣”RadioButton 时,您都希望将“nbrlits”TextView 的状态更改为“禁用”,因此您需要将这两个属性绑定在一起。


改变这个:


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()); 


查看完整回答
反对 回复 2021-10-06
  • 1 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信