Aligning JMenu on the right corner of JMenuBar in Java Swing
Asked Answered
T

4

7

So if i have a JMenu & JMenuBar defined such that:

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

// Finally
setJMenuBar(jMenuBar1);

and with this the Menu "About" is aligned to the left most side of the menu bar. Is there anyway that i can align this menu on the right most side of the menu bar?

Thorner answered 19/12, 2011 at 11:43 Comment(0)
M
30

There is a patch available for this:

jMenuBar.add(Box.createHorizontalGlue());

Add this line before adding menu to menubar and your menu will come on right side of menubar. Something like:

.....
jMenu1.setText("About");
jMenuBar1.add(Box.createHorizontalGlue()); <-- horizontal glue
jMenuBar1.add(jMenu1);
.....
Malloch answered 19/12, 2011 at 11:47 Comment(0)
C
5
jMenuBar1.add(Box.createHorizontalGlue());

and don't forget alignt JMenu with JMenuItem too

JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
Cozen answered 19/12, 2011 at 11:53 Comment(3)
does that make any difference? As without using ComponentOrienatation it works just fine?Thorner
JMenuItems are always placed inside ContainersCozen
-1 for the second part: ComponentOrientation has nothing to do with the requirement (if I understand the OP correctly, s/he has a simple layout problem ;-)Frizzly
H
2

as mKorbel said for the JMenu it works on a JMenuBar like this :

    jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
Heyde answered 25/2, 2014 at 16:25 Comment(0)
P
0

Your may refer to https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html

Especially take a note on part

by putting horizontal glue between two components in a left-to-right box, you make any extra space go between those components

Prevail answered 2/6, 2016 at 9:11 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.