【问题标题】:How do I get a new value from an editable combo box?如何从可编辑的组合框中获取新值?
【发布时间】:2017-05-29 07:53:45
【问题描述】:

我正在尝试向我在场景生成器中创建的名为 nameComboBox 的可编辑组合框添加一个值。

我使用以下代码填充组合框:

  private ObservableList<String> getNames()
  {
      return (FXCollections.observableArrayList("Freddy","Kerstin"));
  }

..

nameComboBox.getSelectionModel().select(getNames());

我从 Scene Builder 中定义了一个保存按钮。代码如下所示:

@FXML
  private void handleSaveBtn()
  {
     System.out.println("The new name  is " + nameComboBox.getValue());
  }

显示场景时,组合框可编辑字段显示为空,两个名称隐藏在空字段下方的列表中,这是我想要发生的。

如果然后在空白字段中键入“Rusty”并单击保存按钮,所有发生的事情就是 println 语句返回 “新名称为空”。

如果我想对新值做一些事情,比如验证它或将它存储在数据库中,我如何获取我在可编辑字段中输入的值?

【问题讨论】:

    标签: javafx combobox


    【解决方案1】:

    尝试用这个代替.getValue()

    nameComboBox.getEditor().getText()
    

    这将返回可编辑ComboBoxTextField (.getEditor()) 的textProperty 的值。

    【讨论】:

      【解决方案2】:

      试试这个

        nameComboBox.setItems(getNames());
         nameComboBox.setValue("Freddy");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-21
        相关资源
        最近更新 更多