簡體   English   中英

JavaFX:當選中兩個單選按鈕之一時,它們將禁用文本字段

[英]JavaFX: 2 radio buttons are disabling a text field, when one of them is selected

基本上,我正在嘗試為酒店預訂表格,有2種選擇:

  • 帶有雙人床的“雙人房”,不能再放其他床,或者
  • 一個有分開的床的房間,您最多可以容納4張床。

這是場景: https : //imgur.com/a/5GdgFAg

我一直在嘗試使文本字段為“ Nombre de lits”。 無論何時選中單選按鈕“ couple”,都應禁用它。 當我單擊“ Litsseparé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) {

    }
}

有人可以幫忙嗎?

用於檢查選擇哪個RadioButton的代碼僅執行一次-初始化ReservationControleur時,這不是您所需要的。

您希望每次選擇“ 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()); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM