如果我定义了一个这样的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所说,对于JMenu
,它在JMenuBar
上的使用方式如下:
jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
您可以参考https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html。
特别注意以下部分:
在从左到右的盒子中,在两个组件之间放置水平粘合剂,可以使任何额外的空间在这些组件之间分配