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 に答える