因此,如果我定义了一个JMenu
和JMenuBar
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenu1.setText("About");
jMenuBar1.add(jMenu1);
// Finally
setJMenuBar(jMenuBar1);
这样,菜单"关于"与菜单栏的最左侧对齐。无论如何,我可以将此菜单对齐在菜单栏的最右侧吗?
有一个补丁可用于此:
jMenuBar.add(Box.createHorizontalGlue());
在将菜单添加到菜单栏之前添加此行,您的菜单将位于菜单栏的右侧。像这样:
.....
jMenu1.setText("About");
jMenuBar1.add(Box.createHorizontalGlue()); <-- horizontal glue
jMenuBar1.add(jMenu1);
.....
jMenuBar1.add(Box.createHorizontalGlue());
不要忘记对齐JMenu
JMenuItem
JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
正如 mKorbel 所说的那样,它适用于这样的JMenuBar
JMenu
:
jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
你可以参考 https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html
特别是要注意部分
通过在从左到右的框中的两个组件之间放置水平胶水,您可以在这些组件之间留出任何额外的空间