JTreeの選択状態を解除する
Total: 6962
, Today: 3
, Yesterday: 2
Posted by aterai at
Last-modified:
Summary
JTree
でノード以外の領域をマウスでクリックした場合、選択状態を解除します。
Screenshot

Advertisement
Source Code Examples
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, KotlinExplanation
上記のサンプルでは、JTree#getRowForLocation(...)
メソッドを使用してJTree
のノード以外の場所がクリックされたかどうかを判断しています。ノードの選択解除自体はJTree#clearSelection()
メソッドを使用しています。
- JTree#getRowForLocation(...) (Java Platform SE 8)
- 指定された位置に対応する行を返す
- 指定された位置が表示セルの境界外にある場合は
-1
を返す
- JTree#getPathForLocation(...) (Java Platform SE 8)
- 指定された位置にあるノードの
TreePath
を返す - 指定された位置が表示セルの境界外にある場合は
null
を返す
- 指定された位置にあるノードの
Reference
- JTree (Java Platform SE 8)のサンプルコード