jtree 部分监听

举报
风吹稻花香 发表于 2021/06/05 01:49:40 2021/06/05
1.1k+ 0 0
【摘要】 package examples.tree; import javax.swing.*; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.MouseAdapter; impo...



package examples.tree;

import javax.swing.*;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class CheckBoxTreeNodeSelectionListener extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent event) { if (event.getClickCount() == 2 &&event.getButton() == MouseEvent.BUTTON1) {
// 处理鼠标双击
 System.out.println("222222222222");
  } else if (event.getClickCount() == 1&&event.getButton() == MouseEvent.BUTTON1) { JTree tree = (JTree) event.getSource();
 int x = event.getX();
 int y = event.getY();
 int row = tree.getRowForLocation(x, y);
 TreePath path = tree.getPathForRow(row);
 if (path != null) { Rectangle pathBounds = tree.getPathBounds(path);
 if (pathBounds != null) { if(x>60 && pathBounds.x<40){ return;
 }else if(x>42 && pathBounds.x<20){ return;
 }else if(x>24 && pathBounds.x<5){ return;
 } System.out.println("x:" + x + " " + pathBounds.x + " ");

 CheckBoxTreeNode node = (CheckBoxTreeNode) path.getLastPathComponent();
 if (node != null) { boolean isSelected = !node.isSelected();
 node.setSelected(isSelected);
 ((DefaultTreeModel) tree.getModel()).nodeStructureChanged(node);
 } } }
  }
}
} 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/72972709

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。