Swing/TreeClearSelection のバックアップの現在との差分(No.9)
- category: swing folder: TreeClearSelection title: JTreeの選択状態を解除する tags: [JTree, MouseListener] author: aterai pubdate: 2010-12-06T14:44:47+09:00 description: JTreeでノード以外の領域をマウスでクリックした場合、選択状態を解除します。 image:
概要
JTree
でノード以外の領域をマウスでクリックした場合、選択状態を解除します。
Screenshot
Advertisement
サンプルコード
tree.addMouseListener(new MouseAdapter() {
@Override public void mousePressed(MouseEvent e) {
JTree tree = (JTree) e.getComponent();
if (tree.getRowForLocation(e.getX(), e.getY()) < 0) {
tree.clearSelection();
}
// or:
// if (tree.getPathForLocation(e.getX(), e.getY()) == null) {
// tree.clearSelection();
// }
}
});
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JTree#getRowForLocation(...)
メソッドを使用して、JTree
のノード以外の場所がクリックされたかどうかを判断しています。ノードの選択解除自体は、JTree#clearSelection()
を使用しています。
上記のサンプルでは、JTree#getRowForLocation(...)
メソッドを使用してJTree
のノード以外の場所がクリックされたかどうかを判断しています。ノードの選択解除自体はJTree#clearSelection()
メソッドを使用しています。
- JTree#getRowForLocation(...) (Java Platform SE 8)
- 指定された位置に対応する行を返す
- 指定された位置が表示セルの境界外にある場合は
-1
を返す
- JTree#getPathForLocation(...) (Java Platform SE 8)
- 指定された位置にあるノードの
TreePath
を返す - 指定された位置が表示セルの境界外にある場合は
null
を返す
- 指定された位置にあるノードの
参考リンク
- JTree (Java Platform SE 6)のサンプルコード
- JTree (Java Platform SE 8)のサンプルコード