你按照下面的改写一下内部类:MouseListener ml = new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if (javax.swing.SwingUtilities.isRightMouseButton(e)) {
popupMenu1.add(menu1);
menu1.add(menuItem1);
menu1.add(menuItem3);
menu1.add(menuItem4);
contentPane.add(popupMenu1);
popupMenu1.show(tree, e.getX(), e.getY()); } }
};
public void mouseReleased(MouseEvent e) {
if (javax.swing.SwingUtilities.isRightMouseButton(e)) {
popupMenu1.add(menu1);
menu1.add(menuItem1);
menu1.add(menuItem3);
menu1.add(menuItem4);
contentPane.add(popupMenu1);
popupMenu1.show(tree, e.getX(), e.getY()); } }
};
popupMenu1.add(menu1);
menu1.add(menuItem1);
menu1.add(menuItem3);
menu1.add(menuItem4);
tree.add(popupMenu1);
popupMenu1.show(tree,e.getX(),e.getY());/*问题就在这*/
}我给你试了,如上
popupMenu1.add(menu1);
menu1.add(menuItem1);
menu1.add(menuItem3);
menu1.add(menuItem4);
tree.add(popupMenu1);
popupMenu1.show(tree,e.getX(),e.getY());/*问题就在这*/
}我给你试了,如上
SwingUtilities.convertPointToScreen(p,tree);
popupMenu1.show(tree, p.x, p.y);
public void mouseClicked(MouseEvent e) {
Frame6 mytree=new Frame6();//问题所在,去掉这句话,然后调整一下
JPopupMenu popup=null;
int selRow = tree.getRowForLocation(e.getX(), e.getY());
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mytree.mySingleClick(e);//直接用mySingleClick(e);
}
......
去掉mySingleClick()方法,把内部类改成我那样写的。