• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JListの先頭文字キー入力による検索選択を無効にする
#navi(../)
RIGHT:Posted by &author(aterai); at 2011-09-12
*JListの先頭文字キー入力による検索選択を無効にする [#v9cc8d26]
JListにフォーカスがある状態で英数字キー入力をしたときに先頭文字が一致するアイテムを検索して選択する機能を無効にします。 

-&jnlp;
-&jar;
-&zip;

//#screenshot
#ref(https://lh6.googleusercontent.com/-_wtzuIN_MvU/Tm2wga2X4hI/AAAAAAAABBs/dUuDS1gj9mM/s800/DisablePrefixMatchSelection.png)

**サンプルコード [#u37e69cc]
#code(link){{
JList list = new JList() {
  @Override public int getNextMatch(String prefix, int startIndex, Position.Bias bias) {
    return -1;
  }
};
}}

**解説 [#uef15a1d]
上記のサンプルでは、JList#getNextMatch(...) メソッドをオーバーライドして、常に -1 を返すようにすることで、キー入力による先頭文字検索選択を無効にしています。

----
JTreeにも同様に機能がありますが、JTree#getNextMatch(...) メソッドをオーバーライドして、戻り値のTreePathを null にすることで、無効にすることができます。
#code{{
@Override public TreePath getNextMatch(
    String prefix, int startingRow, Position.Bias bias) {
  return null;
}
}}

//**参考リンク
**コメント [#yd9ebab2]
#comment