在Java Swing中将JMenu放在JMenuBar的右上角



因此,如果我定义了一个JMenuJMenuBar

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

特别是要注意部分

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

相关内容

  • 没有找到相关文章