应该在MouseEvent里判断选定的节点。 //在树上加鼠标事件
tree.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent me) {
showPopupMenu(me);
}
});
private void showPopupMenu(MouseEvent me) {
if(me.isPopupTrigger()) {
//得到选定的行号
int nTreeRow = tree.getRowForLocation(me.getX(), me.getY());
//选中那一行
tree.setSelectionRow(nTreeRow);
//根据选中的行得到树节点
DefaultMutableTreeNode treeNode
= new DefaultMutableTreeNode(tree.getSelectionPath());
........//根据树节点来弹出与各节点有关的菜单
}
}
tree.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent me) {
showPopupMenu(me);
}
});
private void showPopupMenu(MouseEvent me) {
if(me.isPopupTrigger()) {
//得到选定的行号
int nTreeRow = tree.getRowForLocation(me.getX(), me.getY());
//选中那一行
tree.setSelectionRow(nTreeRow);
//根据选中的行得到树节点
DefaultMutableTreeNode treeNode
= new DefaultMutableTreeNode(tree.getSelectionPath());
........//根据树节点来弹出与各节点有关的菜单
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货