JTree tree = new JTree();
JPopupMenu popup = new JPopupMenu();
popup.add....
.....
.....
tree.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
if (SwingUtilities.isRightMouseButton(e))
popup.show(this,e.getX(),e.getY());
}
});
//***************************************************
//another
//***************************************************
JPopupMenu popup = new JPopupMenu();
myTree.addMouseListener(new PopupTrigger());
。。。
class PopupTrigger extends MouseAdapter
{
public void mouseReleased(MouseEvent e)
{
if (e.isPopupTrigger())
{
int x = e.getX();
int y = e.getY();
TreePath path = myTree.getPathForLocation(x, y);
if(path!=null){
//得到当前节点
DefaultMutableTreeNode node = (DefaultMutableTreeNode)path.getLastPathComponent();
popup.show(myTree, x, y);
}
}
}
}
博客主要展示了Java中JTree和JPopupMenu的使用代码。通过为JTree添加鼠标监听器,实现了右键点击弹出菜单的功能。还定义了PopupTrigger类处理鼠标释放事件,根据鼠标位置获取TreePath,进而得到当前节点并弹出菜单。
953

被折叠的 条评论
为什么被折叠?



