对ListView<>中的项目进行排序

时间:2013-03-19 12:06:19

标签: listview javafx-2 javafx

我有一个简单的代码,从列表到文本“注册”,正在运行

  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项)时,它会转到列表的底部。

sample

我希望它成为第一个

任何人都有任何解决方案吗?

1 个答案:

答案 0 :(得分:1)

您可以将项目添加到ListView

中的任意位置
listView.getItems().add(0, "item at first position");