• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JListの先頭文字キー入力による検索選択を無効にする
#navi(../)
#tags(JList, JTree)
RIGHT:Posted by &author(aterai); at 2011-09-12
*JListの先頭文字キー入力による検索選択を無効にする [#v9cc8d26]
``JList``にフォーカスがある状態で英数字キー入力をしたときに先頭文字が一致するアイテムを検索して選択する機能を無効にします。 
---
category: swing
folder: DisablePrefixMatchSelection
title: JListの先頭文字キー入力による検索選択を無効にする
tags: [JList, JTree]
author: aterai
pubdate: 2011-09-12T16:36:34+09:00
description: JListにフォーカスがある状態で英数字キー入力をしたときに先頭文字が一致するアイテムを検索して選択する機能を無効にします。
image: https://lh6.googleusercontent.com/-_wtzuIN_MvU/Tm2wga2X4hI/AAAAAAAABBs/dUuDS1gj9mM/s800/DisablePrefixMatchSelection.png
---
* 概要 [#summary]
`JList`にフォーカスがある状態で英数字キー入力をしたときに先頭文字が一致するアイテムを検索して選択する機能を無効にします。

-&jnlp;
-&jar;
-&zip;
#download(https://lh6.googleusercontent.com/-_wtzuIN_MvU/Tm2wga2X4hI/AAAAAAAABBs/dUuDS1gj9mM/s800/DisablePrefixMatchSelection.png)

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

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

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

----
``JTree``にも同様に機能がありますが、``JTree#getNextMatch(...)``メソッドをオーバーライドして、戻り値の``TreePath``を``null``にすることで、無効にすることができます。
- `JTree`にも`JTree#getNextMatch(...)`メソッドが存在して同様のキー入力による選択機能が存在するが、こちらはインデックスではなく`TreePath`が戻り値になるので`null`を返せば無効化が可能

#code{{
@Override public TreePath getNextMatch(
    String prefix, int startingRow, Position.Bias bias) {
  return null;
}
JTree tree = new JTree() {
  @Override public TreePath getNextMatch(String prefix, int startingRow, Position.Bias bias) {
    return null;
  }
};
}}

//**参考リンク
**コメント [#yd9ebab2]
* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JList.html#getNextMatch-java.lang.String-int-javax.swing.text.Position.Bias- JList#getNextMatch(...) (Java Platform SE 8)]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JTree.html#getNextMatch-java.lang.String-int-javax.swing.text.Position.Bias- JTree#getNextMatch(...) (Java Platform SE 8)]

* コメント [#comment]
#comment
#comment