2010-02-02 68 views
1

我注意到,在某些mac上,JMenuItem使用单词“space”来指示空格键是键绑定。在其他Mac上使用一个符号(看起来像一个短的大写U)。我更喜欢“空间”演示文稿,因为它对用户更加透明。有什么方法可以重写LAF如何以图形方式表示加速键?覆盖Java/Swing中JMenuItems中加速键的显示外观

回答

1

您可以继承BasicMenuItemUI并覆盖paintMenuItem()方法。 在那里你可以绘制自己的加速器。我会爱一个动画形象作为加速器:)

注意如果你只是想改变mneonic或加速器,那么你可以直接使用setAccelerator()或另一套方法。但我假定这是不是这样的。)

+0

这听起来不错!我不需要继承Aqua的特殊BasicMenuItemUI吗? 我想我会放弃这个目标,因为在Aqua和Mac JVM的发行版之间自己绘制菜单项可能不可移植。我会尽力模仿我电脑上的菜单项,然后在旧版/未来版或不同电脑上,菜单项会看起来不一样,我的模仿会关闭。认为这是一个有效的关注? – 2010-02-02 05:20:14

+1

1)是的,如果我的应用程序针对Windows,那么我将不得不重写WindowsMenuItemUI。 2)有可能。 – 2010-02-02 05:25:36