2017-05-29 48 views
1

我正在尝试将一个值添加到我在场景生成器中创建的名为nameComboBox的可编辑组合框中。如何从可编辑组合框中获取新值?

我填充组合框与此代码:

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

.. 

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

我定义了一个保存按钮形成场景生成器。代码如下所示:

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

当显示的场景,组合框编辑字段显示空的,隐藏在列表中的空场,这是我希望发生下面的两个名字。

如果在空字段中输入“Rusty”并单击保存按钮,则发生的所有情况都是println语句返回 “新名称为空”。

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

回答

0

尝试使用此代替.getValue()

nameComboBox.getEditor().getText() 

这将返回TextField.getEditor())的textProperty的编辑ComboBox的价值。

+1

这是伟大的!非常感谢,完美地工作。 – Rusty

0

试试这个

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