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

时间:2011-12-19 11:43:44

标签: java swing jmenu jmenubar

所以,如果我有JMenu& JMenuBar定义如下:

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

// Finally
setJMenuBar(jMenuBar1);

并且菜单“关于”菜单对齐到菜单栏的最左侧。无论如何,我可以在菜单栏的最右侧对齐此菜单吗?

4 个答案:

答案 0 :(得分:28)

有一个可用的补丁:

jMenuBar.add(Box.createHorizontalGlue());

在将菜单添加到菜单栏之前添加此行,菜单将位于菜单栏的右侧。类似的东西:

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

答案 1 :(得分:6)

jMenuBar1.add(Box.createHorizontalGlue());

并且不要忘记alignt JMenu JMenuItem

JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 

答案 2 :(得分:2)

正如mKorbel所说的JMenu它适用于这样的JMenuBar

    jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

答案 3 :(得分:0)

您可以参考https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html

特别注意部分

  

通过在左右框中的两个组件之间放置水平胶水,可以在这些组件之间留出任何额外的空间