Выравнивание JMenu в правом углу JMenuBar в Java Swing

Так что если у меня есть JMenu & JMenuBar определить следующим образом:

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

// Finally
setJMenuBar(jMenuBar1);

и с этим меню "О программе"выравнивается в левой части строки меню. Есть ли в любом случае, что я могу выровнять это меню в правой части строки меню?

4 ответов


для этого доступен патч:

jMenuBar.add(Box.createHorizontalGlue());

добавьте эту строку перед добавлением меню в меню, и ваше меню появится в правой части меню. Что-то вроде:

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

jMenuBar1.add(Box.createHorizontalGlue());

и не забудьте alignt JMenu С JMenuItem слишком

JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 

как сказал мкорбель для JMenu на JMenuBar такой :

    jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

ваш может ссылаться на https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html

особенно обратите внимание на часть

помещая горизонтальный клей между двумя компонентами в поле слева направо, Вы делаете дополнительное пространство между этими компонентами