第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javafx單選按鈕定向綁定

Javafx單選按鈕定向綁定

達(dá)令說 2022-07-06 17:05:14
我還是 javafx 的新手,我想對單選按鈕執(zhí)行定向綁定在我的 fxml 我有  <fx:define>          <ToggleGroup fx:id="version_selection" />                    </fx:define>   <RadioButton toggleGroup="$version_selection" ............>   <RadioButton toggleGroup="$version_selection" ............> 在我的控制器中,我想綁定所選切換組的值。使用文本字段很簡單 @FXMLTextField name;@FXMLprivate ToggleGroup version_selection;  name.textProperty().bindBidirectional(model.field5Property());其中模型是我的具有 SimpleStringValue 屬性的類我如何綁定切換組,因為它沒有文本屬性作為文本字段
查看完整描述

1 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗 獲得超4個贊

即使ObjectProperty<Toggle>您的模型中有 a ,您也無法建立雙向綁定,因為ToggleGroup.selectedToggle它是只讀的。ToggleGroup.selectedToggle您需要通過向?qū)傩院湍P蛯傩蕴砑觽陕犉鱽斫鉀Q此問題,并在更改時更新更改源以外的屬性。


使用 aMap<String, Toggle>將文本轉(zhuǎn)換為要選擇的切換。以下示例使用 aTextField來確定屬性而不是模型屬性來演示行為:輸入RadioButton要選擇的文本,它將被選中。


@Override

public void start(Stage primaryStage) throws IOException {


    ToggleGroup group = new ToggleGroup();

    VBox vbox = new VBox();


    for (char c = 'a'; c <= 'f'; c++) {

        RadioButton radio = new RadioButton(Character.toString(c));

        radio.setToggleGroup(group);

        vbox.getChildren().add(radio);

    }


    TextField input = new TextField();

    vbox.getChildren().add(input);


    // create map mapping from text to corresponding toggle

    Map<String, Toggle> map = new HashMap<>();      

    for (Toggle t : group.getToggles()) {

        map.put(((RadioButton) t).getText(), t);

    }


    StringProperty property = input.textProperty();


    InvalidationListener listener = new InvalidationListener() {


        // flag preventing circular updating

        boolean updating = false;


        @Override

        public void invalidated(Observable observable) {

            if (!updating) {

                updating = true;


                if (observable == group.selectedToggleProperty()) {

                    // change as result of user interaction with RadioButton


                    // update property

                    RadioButton selectedToggle = (RadioButton) group.getSelectedToggle();

                    property.set(selectedToggle == null ? "" : selectedToggle.getText());

                } else {

                    // change as result of updating the property


                    // select corresponding toggle

                    Toggle toggleToSelect = map.get(property.get());

                    group.selectToggle(toggleToSelect);

                }


                updating = false;

            }

        }


    };


    property.addListener(listener);

    group.selectedToggleProperty().addListener(listener);


    Scene scene = new Scene(vbox);

    primaryStage.setScene(scene);

    primaryStage.show();

}


查看完整回答
反對 回復(fù) 2022-07-06
  • 1 回答
  • 0 關(guān)注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號