JavaFX - 控制项目最适合我的需求?

时间:2016-01-15 22:51:20

标签: java user-interface javafx controls

我想要一个保存String个对象列表的Box。不是ChoiceBoxComboBox等,因为它需要显示而无需单击打开Box。用户可以通过在TextField下方输入新条目并按Enter来添加新条目。控制项不能是TextField,因为您无法点击TextField的各行。在此应用程序中,我希望能够双击任何项目以将其删除。如果这真的很容易,那么也许双击可以让我编辑条目?

这里有人能提出什么建议吗?在我所知道的所有控制类型中,我想不出一件事。

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以ListView使用TextField。使这些单元格可编辑变得相当容易,因为已经有一种方法可以使用TextFieldListCell.forListView轻松创建单元工厂

ListView<String> lv = new ListView<>();

// Make cells editable
lv.setEditable(true);
lv.setCellFactory(TextFieldListCell.forListView());

// print selected item to the console
lv.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
    System.out.println("Selected Item: "+ newValue);
});

TextField tf = new TextField();
// add new text from the textfield as item to the listview
tf.setOnAction((event) -> {
    lv.getItems().add(tf.getText());
    tf.clear();
});

VBox root = new VBox(lv, tf);
// TODO: add root to scene