首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Swing:我可以设置一个不需要按alt的按钮助记符吗?

Java Swing:我可以设置一个不需要按alt的按钮助记符吗?
EN

Stack Overflow用户
提问于 2010-03-03 06:10:26
回答 3查看 3.9K关注 0票数 7

例如,假设我的应用程序主窗口的顶部有一系列工具栏样式的按钮。我想给它们中的一个附加助记符,只需按一次键,就像F3。

将助记符设置为KeyEvent.VK_F3时,用户必须按Alt+F3键。

如果您有菜单项,则可以设置快捷键,而不是助记符,并选择是否使用元键。然而,按钮不能让你设置加速器。

有没有办法将元键转换为按钮助记符?

EN

回答 3

Stack Overflow用户

发布于 2010-03-03 06:13:44

Actions可以将代码块绑定到菜单项、击键、按钮和任何您感兴趣的内容。

通常,不要认为您的代码绑定到特定的按键/事件--也不要使用匿名内部类。取而代之的是使用真正的类,这样你的代码就可以被重用于不同类型的东西。Action类使用的模式提供了一些很好的例子。

票数 4
EN

Stack Overflow用户

发布于 2010-03-03 07:29:27

在幕后,无论您在组件上使用加速器还是助记符,该方法都会为您创建一个Key Binding

因此,没有什么可以阻止您将KeyStroke和操作绑定到您想要的任何组件,并手动创建键绑定。它甚至可以是一个没有setMNemonic(...)的组件方法。

票数 3
EN

Stack Overflow用户

发布于 2010-03-04 06:18:38

如果按钮是使用操作配置的,是否确实不能在按钮上定义快捷键?(我知道这在某种程度上是正确的,但我认为在Java的后续版本中可能会有所不同。)

无论如何,下面是在按钮上设置它的另一种方法:

代码语言:javascript
复制
button.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(myKeyStroke, "actionName");
button.getActionMap().put("actionName", myAction);

其中myKeyStroke是一个击键,比如F3,"actionName“是一个标签(字符串),myAction是它调用的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2367219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档