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: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTWDzni-uI/AAAAAAAAAoo/r6UW4JENwgI/s800/TreeClearSelection.png

概要

JTreeでノード以外の領域をマウスでクリックした場合、選択状態を解除します。

#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()メソッドを使用しています。

参考リンク

コメント

参考リンク

コメント