JPopupMenu的JMenuItem热键

4

我在我的Java应用程序中的JTable上添加了一个带有某些JMenuItems的JPopupMenu。 然后,我为这些JMenuitems设置了加速器。 现在我的问题是,当我尝试使用这些热键时,它们不起作用,直到我打开那个JPopupMenu。 当弹出菜单处于打开状态时,热键才能正常工作,这真的很无用。 请帮助我。

1个回答

3
加速键绑定仅适用于添加到GUI的组件。直到调用弹出窗口后,弹出菜单才会添加到GUI中。
您可以尝试:
1.将您的弹出菜单添加到框架的menuBar中。然后将识别加速键。 2.手动为弹出菜单中的每个加速键添加KeyBindings。阅读Swing教程如何使用Key Bindings获取更多信息。

第一种解决方案不可行,因为我的应用程序只有一个JFrame,其余的是动态加载的JPanel。我也尝试了第二个选项,但它也没有起作用。 - user2067787
+1 @user2067787:作为参考,ImageApp是一个使用相同的“Action”用于菜单和弹出窗口的示例。 - trashgod
动态加载的j面板 - 当您加载面板时,可以动态更新菜单栏。我也尝试了第二个选项,但它没有起作用 - 发布您的SSCCE以演示在使用键绑定时出现的问题。 - camickr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接