// isPopupTrigger() 返回此鼠标事件是否为该平台的弹出菜单触发事件。
private static class PopupMenuListener extends MouseAdapter {
private final JPopupMenu menu;
PopupMenuListener(JPopupMenu menu) {
this.menu = menu;
}
public void mousePressed(MouseEvent e) { maybeShowPopup(e); }
public void mouseReleased(MouseEvent e) { maybeShowPopup(e); }
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
menu.show(e.getComponent(), e.getX(), e.getY());
}
}
}
private class SelectionListener extends MouseAdapter {
public void mousePressed(MouseEvent e) {
if (!e.isPopupTrigger()) {
Node node = getScene().nodeAt(e.getX(), e.getY());
if (node != null) {
getScene().setSelectedNode(node);
}
}
}
}
本文介绍了一个自定义的鼠标事件监听器实现,通过判断鼠标事件是否为弹出菜单触发事件来显示菜单。同时,文章还展示了如何通过鼠标按下事件选择节点。
1129

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



