3

我有一个从列表到文本的项目“注册”的简单代码,正在工作

  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)时,它会进入列表的底部。

样本

我希望它是第一个

有人有任何解决方案吗?

4

1 回答 1

1

您可以将项目添加到中的任何位置ListView

listView.getItems().add(0, "item at first position");
于 2013-03-19T13:24:33.560 回答