gpt4 book ai didi

java - 如何捕获对 JMenu 元素的点击?

转载 作者:搜寻专家 更新时间:2023-11-01 02:53:24 24 4
gpt4 key购买 nike

我正在使用 JMenuBar、JMenu 和 JMenuItem 开发带有菜单的 Java/Swing 应用程序。

系统外观应用于 UI。

UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );

我的菜单有几个顶级元素:

  • JMenu"file"工作正常,允许用户选择子菜单,如 JMenuItems“新建”、“打开”...

  • 然后,我想添加第二个顶级元素“关于”(与"file"处于同一级别),点击它时会显示一个弹出窗口。

问题很简单:如何使这个 JMenu“关于”元素可点击?

我尝试了几种方法:

  1. 将“关于”元素设置为 JMenuItem。但是,此元素与"file"等其他 JMenu 项具有不同的 UI

  2. 将“About”元素设置为JMenu 并在其上添加一个MouseListener 和一个KeyListener。此元素将具有与其他元素相同的 UI,但我必须在“关于”弹出窗口的“确定”按钮上单击两次才能捕获此事件。

还有其他解决方案吗?

最佳答案

我的第一个建议是在 JMenu“关于”菜单中添加一个 JMenuItem。因为这将匹配其他菜单的操作方式并且看起来相同。当用户点击“关于”期待一个菜单但看到一个弹出窗口时,这也不足为奇。应用程序在菜单栏末尾有一个“帮助”菜单是很常见的,该菜单栏有一个名为“关于”的菜单项,显示一个弹出窗口。菜单标题在单击时打开弹出窗口的情况并不常见。

如果你真的必须按照你的建议去做,那么要么:

  • 指定外观(如 Nimbus),并将 JMenuItem 修改为看起来像菜单项。

  • 找到让您的第二个选项起作用的方法。这听起来可行,但可能需要进行更多调整,并且更难使 UI 与系统外观和感觉相得益彰。

关于java - 如何捕获对 JMenu 元素的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847382/

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