Java JMenuItem快捷方式对齐

Java JMenuItem快捷方式对齐,java,swing,keystroke,jmenubar,Java,Swing,Keystroke,Jmenubar,我有一个带有标准项目和快捷方式的JMenuBar。但我注意到快捷方式描述是左对齐的,看起来很难看。有没有办法将其右对齐 附言:“Umschalt”的意思是转移。有没有办法强迫它说shift而不是Umschalt [更新:Locale.setDefault(Locale.ENGLISH);解决了这个问题,但是只影响特定组件的解决方案会更好..] PSPS:WithUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())我

我有一个带有标准项目和快捷方式的JMenuBar。但我注意到快捷方式描述是左对齐的,看起来很难看。有没有办法将其右对齐

附言:“Umschalt”的意思是转移。有没有办法强迫它说shift而不是Umschalt

[更新:
Locale.setDefault(Locale.ENGLISH);
解决了这个问题,但是只影响特定组件的解决方案会更好..]

PSPS:With
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())我已将外观设置为操作系统默认设置。但是现在我想在标准操作系统外观的基础上对外观做一些小的调整。例如,我想把JMenuBar变成黑色。互联网告诉我使用
UIManager.put(“tMenuBar.background”,Color.BLACK)但它似乎没有任何作用

[更新:这似乎是不可能的Windows外观:/]

代码如下:

    private JMenuBar tMenuBar;
    private JMenu mbEdit;
    private JMenuItem mCut, mCopy, mPaste, mDo, mUndo;

    tMenuBar = new JMenuBar();
    mbEdit = new JMenu("Edit");
    tMenuBar.add(mbEdit);

    // EDIT
    mUndo = new JMenuItem("Undo");
    mDo = new JMenuItem("Redo");
    mCut = new JMenuItem("Cut");
    mCut.setIcon(iCut);
    mCopy = new JMenuItem("Copy");
    mCopy.setIcon(iCopy);
    mPaste = new JMenuItem("Paste");
    mPaste.setIcon(iPaste);
    mbEdit.add(mUndo);
    mbEdit.add(mDo);
    mbEdit.addSeparator();
    mbEdit.add(mCut);
    mbEdit.add(mCopy);
    mbEdit.add(mPaste);

    // Undo
    mUndo.setAccelerator(KeyStroke.getKeyStroke(
            java.awt.event.KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    // Redo
    mDo.setAccelerator(KeyStroke.getKeyStroke(
            java.awt.event.KeyEvent.VK_Z, ((Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | java.awt.event.InputEvent.SHIFT_MASK))));
    // Cut
    mCut.setAccelerator(KeyStroke.getKeyStroke(
            java.awt.event.KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    // Copy
    mCopy.setAccelerator(KeyStroke.getKeyStroke(
            java.awt.event.KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
    // Paste
    mPaste.setAccelerator(KeyStroke.getKeyStroke(
            java.awt.event.KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
已尝试:

applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

我想把JMenuBar变成黑色

应该是(带“t”)

您需要在创建组件之前设置UIManager属性


此外,并非所有LAF都支持该属性。查看更多信息和LAF支持的属性列表。

查看有关德语单词的信息。我确实意识到这可能是一个评论,而不是一个答案,但我仍然无法这样做,因为缺乏声誉,我想帮助

嗯。我想我必须使用我创建的对象。。但还是没有运气。我已经下载了这个工具,是的,Windows LAF确实支持MenuBar.background。在创建组件之前放置它似乎并不能修复它<代码>UIManager.put(“菜单栏.背景”,颜色.黑色);JMenuBar tMenuBar=新的JMenuBar()有趣的事实:如果我删除设置Look&Feel的部分,UIManager.put方法实际上可以工作。。。(这很奇怪,因为UIManagerDefaults应用程序说“Windows L&F”应该有一个ManuBar.background方法…@Haeri,是的,可能会有不一致。UIManager可能有信息,但LAF可以忽略它。好的。谢谢。无论如何,这是一个PSPS问题xD。哦,谢谢!这很有帮助。但它将整个应用程序改为英语,而不是系统默认值…如果能够只更改特定部分…但这也很好。(希望将您的答案标记为最终答案,但关于对齐的主要问题仍然存在…)我很高兴它有所帮助,关于整个应用程序的更改,您可以尝试使用setLocale()方法只在GUI对象上使用,但我不确定这是否有效。关于对齐,这有帮助吗?呵呵。我在发布问题之前做了一些研究。是的。我已经尝试过了。它只影响项目的标签,但不影响快捷方式。它看起来像:[……打开Ctrl+O]而不是:[打开….Ctrl+O]但是+1的努力;)你能试试这个吗mUndo.applycomponentation(ComponentOrientation.RIGHT\u TO\u LEFT);请?
但是关于对齐的主要问题仍然存在。
这是JMenuItem的UI的一部分。因此,您可能需要自己更改UI布局。是的。。我已经开始研究JMenuItem的文档。。但我在任何地方都找不到“布局”。。。但是为什么会有人实现快捷方式显示左对齐呢??
UIManager.put("MenuBar.background", Color.BLACK);