首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaFX:选择其中一个单选按钮时,2个单选按钮将禁用文本字段

JavaFX:选择其中一个单选按钮时,2个单选按钮将禁用文本字段
EN

Stack Overflow用户
提问于 2018-09-23 19:55:24
回答 1查看 761关注 0票数 0

基本上,我正在尝试有一张酒店的预订表,有两个选择:

  • 是一间“情侣房”,里面有一张双人床,里面不能有其他的床;
  • 是一间有独立床的房间,最多可以有4张床。

这就是场景: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) {

    }
}

有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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()); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52465852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档