1

アイテムから一致する検索機能を持つ ComboBox を作成しようとしています。

これが私が行ったことのコードサンプルです。

ObservableList<String> ab = FXCollections.observableArrayList("z", "asxdf", "abasdf", "bcasdf", "b", "bc", "bcd", "c");

final ComboBox box = new ComboBox(ab);
box.setEditable(true);

box.setOnKeyReleased(new EventHandler<KeyEvent>() {
   @Override
   public void handle(KeyEvent t) {

      box.show();

      for (String item : items) {
         if (item.startsWith(box.getEditor().getText())) {

             box.getSelectionModel().select(item); //which selects the item.

             break;
         }
      }
   }
});

問題はbox.getSelectionModel().select(item);、ComboBox に入力された特定の項目を選択することですが、その項目を選択したくありません。マウスがホバーしたときのように、その項目にホバー (フォーカス) したいだけです。

誰かが私に置き換えるコードを教えて、box.getSelectionModel().select(item);この問題を解決するのを手伝ってくれますか?

4

2 に答える 2

4

次のコードで ComboBox から ListView を取得できます。

ListView<?> lv = ((ComboBoxListViewSkin) getSkin()).getListView();

次に、アイテムに集中できます。

lv.getFocusModel().focus(N);

またはスクロールしてください:

lv.scrollTo(N)
于 2016-04-11T12:09:51.463 に答える