【问题标题】:How to set a values for combobox based on a clicked value from another combobox using javafx如何使用 javafx 根据来自另一个组合框的单击值设置组合框的值
【发布时间】:2018-06-25 20:35:27
【问题描述】:

我是 javafx 的新手,想根据第一个组合框的实时选定值为另一个组合框设置一个新值。 我已经尝试过此代码但无法正常工作

@FXML
public void A(ActionEvent event) {
String a[] = {"A","B","C"}; 
list2 = FXCollections.observableArrayList(a);
ChunitS.setItems(list2);
if (ChunitS.getValue() == (null)) {
return;
} else {
list1 = FXCollections.observableArrayList(ChunitS.getValue().toString());
ChassS.setItems(list1);
}
}

如果我在第一个组合框中选择了“A”,则应更新第二个组合框以在其中包含值“A”。

【问题讨论】:

  • 只需使用第一个组合框的valueProperty() 注册一个侦听器,然后在第二个组合框上调用setItems()。目前还不清楚你被困在哪一部分。另外:请不要发布代码链接和do not post images of code。将代码直接包含在您的问题中,properly formatted
  • 对不起,我已经更新了问题,现在应该更清楚了。

标签: java javafx combobox


【解决方案1】:

您可以在第一个 ComboBox 中添加监听器:

@FXML private ComboBox<String> combo1,combo2;

@Override
public void initialize(URL location, ResourceBundle resources) {
   //Init ComboBox items
   combo1.setItems(
       FXCollections.observableArrayList(new String[]{"A","B"})
   );
   combo2.setItems(FXCollections.observableArrayList());
   //add ActionListener for Example
   combo1.setOnAction(e->{
       combo2.getItems().add(
              combo1.getSelectionModel().getSelectedItem()
        );
    });
}

,或使用按钮(@FXML 'onAction' 参考):

@FXML
public void handleButtonA(ActionEvent event) {
        combo2.getItems().add(
              combo1.getSelectionModel().getSelectedItem()
        );
    }

【讨论】:

    【解决方案2】:

    尝试在 on action first 组合框函数中使用String output = ChunitS.getSelectionModel().getSelectedItem().toString(); 以获得被选中。然后在第二个组合框中设置选定的值。希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多