我有一个简单的代码,可以将列表中的项目“注册”到文本中,正在运行
final private KeyCombination ENTER = new KeyCodeCombination(KeyCode.ENTER);
final private KeyCombination ESC = new KeyCodeCombination(KeyCode.ESCAPE);
final ListView<String> listview = new ListView<>();
final TextArea textArea = new TextArea();
textArea.setPrefRowCount(4);
textArea.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
public void handle(KeyEvent event) {
if (ENTER.match(event)) {
if (!textArea.getText().trim().isEmpty()) {
String selectedItem = listview.getSelectionModel().getSelectedItem();
if (selectedItem != null) {
if (!selectedItem.equals(textArea.getText())) {
listview.getItems().set(listview.getSelectionModel().getSelectedIndex(), textArea.getText());
listview.getSelectionModel().clearSelection();
textArea.setText("");
textArea.clear();
}
} else { // create a new item
listview.getItems().add(textArea.getText());
textArea.setText("");
textArea.clear();
}
event.consume();
}
} else if (ESC.match(event)) { // cancel edit
textArea.clear();
listview.getSelectionModel().clearSelection();
}
}
});
我只是想更改作为寄存器推送的房子,例如,当添加一个项目(项目 5)时,它会转到列表的底部。
我要第一个
谁有解决办法?
最佳答案
您可以将项目添加到 ListView
中的任何位置:
listView.getItems().add(0, "item at first position");
关于listview - 对 ListView<> 中的项目进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15499066/