我有一个带有标准项和快捷键的JMenuBar。但我注意到快捷键描述是左对齐的,看起来很丑。是否有办法将其右对齐?
PS:“Umschalt”表示Shift。有没有办法强制它说Shift而不是Umschalt?
[更新:Locale.setDefault(Locale.ENGLISH);解决了问题,但只影响特定组件的解决方案会更好...]
PSPS:使用UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())将外观设置为操作系统默认值。但现在我想在标准操作系统外观之上进行一些小的外观调整。例如,我想将JMenuBar设置为黑色。网络告诉我使用UIManager.put(“tMenuBar.background”,Color.BLACK);但似乎没有任何作用。
[更新:看起来在Windows外观和感觉下不可能:/]
这里是代码:
PS:“Umschalt”表示Shift。有没有办法强制它说Shift而不是Umschalt?
[更新:Locale.setDefault(Locale.ENGLISH);解决了问题,但只影响特定组件的解决方案会更好...]
PSPS:使用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);