JavaFX: 2 radio buttons are disabling a text field

基本上,我正在尝试为酒店提供预订表格,有两种选择:

  • 要么是带双人床的“情侣房”,里面不能有其他床,要么

  • 一间带分隔床的房间,最多可容纳 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);

        }


任何人都可以帮忙吗?


慕娘9325324
浏览 181回答 1
1回答

MYYA

检查选择哪个 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 selectednbrlits.disableProperty().bind(couple.selectedProperty()); 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java