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