0

ねえ、私はこのフォームに取り組んでいます。このフォームには、上部にリストビューがあり、その下にリスト オブジェクトの属性を持つテキスト フィールドがあります。リスト内のオブジェクトの 1 つをクリックすると、対応するデータがフォームに入力されるように、リスナーを実装しました。これはすべてのテキスト フィールドで機能し、私の年齢スライダーでも機能します。しかし、ラジオボタンに苦労しています。

コントローラー内に次のようなものがあります。

@FXML
private RadioButton rb_m;

@FXML
private ToggleGroup geschlechtGroup;

@FXML
private RadioButton rb_w;

これは私の OnClickList イベントです:

@FXML
    void clickList(ActionEvent event)
    {



            if(list.getSelectionModel().getSelectedItem().getGeschlecht().equals("Weiblich"))
                    rb_w.setSelected(true);
            else
                    rb_m.setSelected(true);

                tf_vn.setText(list.getSelectionModel().getSelectedItem().getVorname());
                tf_nn.setText(list.getSelectionModel().getSelectedItem().getNachname());
                tf_strasse.setText(list.getSelectionModel().getSelectedItem().getStrasse());
                tf_plz.setText(list.getSelectionModel().getSelectedItem().getPlz());
                tf_ort.setText(list.getSelectionModel().getSelectedItem().getWohnort());
                label_age.setText(list.getSelectionModel().getSelectedItem().getAlter() + " ");
    }

テキストフィールドがいっぱいになるので、clickList イベント自体は正常に動作しているようです。私を本当に混乱させているのは、ラジオボタンがチェックしない理由です。問題は if/else then にあるはずです。

これが私のリストです:

ObservableList<Person> items = FXCollections.observableArrayList();
    list.setItems(items);
    items.add(new Person("Eva", "Becker", "Lorenzstrasse 20", "95028",
            "Hof", "Weiblich", 44));
    items.add(new Person("Max", "Schmitt", "Testallee 5", "81245",
            "München", "Maennlich", 24));

    list.getSelectionModel().selectedItemProperty().addListener((v,oldValue, newValue) -> tf_vn.setText(newValue.getVorname()));
    list.getSelectionModel().selectedItemProperty().addListener((v,oldValue, newValue) -> tf_nn.setText(newValue.getNachname()));
    list.getSelectionModel().selectedItemProperty().addListener((v, oldValue, newValue) -> tf_strasse.setText(newValue.getStrasse()));
    list.getSelectionModel().selectedItemProperty().addListener((v, oldValue, newValue) -> tf_plz.setText(newValue.getPlz()));
    list.getSelectionModel().selectedItemProperty().addListener((v,oldValue, newValue) -> tf_ort.setText(newValue.getWohnort()));
    list.getSelectionModel().selectedItemProperty().addListener((v, oldValue, newValue) -> label_age.setText(" " + newValue.getAlter()));
    list.getSelectionModel().selectedItemProperty().addListener((v,oldValue, newValue) -> sliderAge.setValue(newValue.getAlter()));

もちろん、私の person クラスには getGeschlecht メソッドがあり、性別文字列を返します。ブロックが適切に機能する場合、私の同等であるべきではありませんか?私は何時間も探していましたが、何が問題なのか理解できません。

4

1 に答える 1