在Java Swing中将JMenu对齐到JMenuBar的右侧角。

7

如果我定义了一个这样的JMenuJMenuBar

jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenu1.setText("About");
jMenuBar1.add(jMenu1);

// Finally
setJMenuBar(jMenuBar1);

这样一来,“关于”菜单就对齐到了菜单栏最左边。有没有办法将这个菜单对齐到菜单栏最右边呢?

4个回答

30

这个问题已经有一个可用的补丁:

jMenuBar.add(Box.createHorizontalGlue());
在将菜单添加到菜单栏之前,请添加此行代码,您的菜单将显示在菜单栏右侧。类似于以下内容:

在将菜单添加到菜单栏之前,请添加此行代码,您的菜单将显示在菜单栏右侧。类似于以下内容:

.....
jMenu1.setText("About");
jMenuBar1.add(Box.createHorizontalGlue()); <-- horizontal glue
jMenuBar1.add(jMenu1);
.....

5
jMenuBar1.add(Box.createHorizontalGlue());

同时不要忘记将 JMenuJMenuItem 对齐

JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 

这会有任何区别吗?因为不使用ComponentOrientation它也可以正常工作。 - Johnydep
JMenuItems总是放置在容器内部。 - mKorbel
-1 对于第二部分:ComponentOrientation与要求无关(如果我正确理解了OP,他/她只是有一个简单的布局问题;-) - kleopatra

2

如mKorbel所说,对于JMenu,它在JMenuBar上的使用方式如下:

    jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接