Swing/DisablePrefixMatchSelection の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/DisablePrefixMatchSelection へ行く。
- Swing/DisablePrefixMatchSelection の差分を削除
--- 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`にフォーカスがある状態で英数字キー入力をしたときに先頭文字が一致するアイテムを検索して選択する機能を無効にします。 #download(https://lh6.googleusercontent.com/-_wtzuIN_MvU/Tm2wga2X4hI/AAAAAAAABBs/dUuDS1gj9mM/s800/DisablePrefixMatchSelection.png) * サンプルコード [#sourcecode] #code(link){{ JList list = new JList() { @Override public int getNextMatch( String prefix, int startIndex, Position.Bias bias) { @Override public int getNextMatch(String prefix, int startIndex, Position.Bias bias) { return -1; } }; }} * 解説 [#explanation] 上記のサンプルでは、`JList#getNextMatch(...)`メソッドをオーバーライドし、戻り値(次にマッチする要素のインデックス)が常に`-1`になるようにすることで、キー入力による先頭文字検索選択を無効にしています。 ---- - `JTree`にも`JTree#getNextMatch(...)`メソッドが存在して同様のキー入力による選択機能が存在するが、こちらはインデックスではなく`TreePath`が戻り値になるので`null`を返せば無効化が可能 #code{{ JTree tree = new JTree() { @Override public TreePath getNextMatch( String prefix, int startingRow, Position.Bias bias) { @Override public TreePath getNextMatch(String prefix, int startingRow, Position.Bias bias) { return null; } }; }} * 参考リンク [#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