gpt4 book ai didi

java - 如何防止禁用的 JMenuItem 在被单击时隐藏菜单?

转载 作者:搜寻专家 更新时间:2023-10-31 08:04:17 25 4
gpt4 key购买 nike

在我的 Java swing 应用程序中,我注意到当我在 JPopupMenu 中单击禁用的 JMenuItem 时,它会隐藏菜单,但我不想隐藏它,就好像没有单击任何内容一样。有没有办法防止这种情况?

--------------------------------> 更新:添加了代码示例:

JMenuItem saveMenuItem = new JMenuItem();

saveMenuItem.setEnabled(false);

saveMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveMenuItemActionPerformed();
}
});
add(saveMenuItem);

private void saveMenuItemActionPerformed() {
System.out.println( "Save clicked." );
}

最佳答案

这已经过测试并且有效。

外观决定了如何处理禁用菜单项上的鼠标事件。无论如何,您可以使用自定义 MenuItem拦截不需要的事件。只需使用该代码(复制/粘贴):

public class CustomMenuItem extends JMenuItem {

public CustomMenuItem(String text) {
super(text);
}

public CustomMenuItem() {
super();
}

protected void processMouseEvent(MouseEvent e) {
if (isEnabled()) super.processMouseEvent(e);
}
}

首先,根据您的需要调整代码(可选)。
最后,用 CustomMenuItem替换任何 JMenuItem

就是这样!

关于java - 如何防止禁用的 JMenuItem 在被单击时隐藏菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5210672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com