Выравнивание JMenu в правом углу JMenuBar в Java Swing - PullRequest
7 голосов
/ 19 декабря 2011

Так что, если у меня есть JMenu & JMenuBar, определенные так, что:

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

// Finally
setJMenuBar(jMenuBar1);

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

Ответы [ 4 ]

28 голосов
/ 19 декабря 2011

Для этого есть патч:

jMenuBar.add(Box.createHorizontalGlue());

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

.....
jMenu1.setText("About");
jMenuBar1.add(Box.createHorizontalGlue()); <-- horizontal glue
jMenuBar1.add(jMenu1);
.....
6 голосов
/ 19 декабря 2011
jMenuBar1.add(Box.createHorizontalGlue());

и не забудьте alignt JMenu с JMenuItem тоже

JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
2 голосов
/ 25 февраля 2014

как сказал mKorbel для JMenu, он работает на JMenuBar следующим образом:

    jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
0 голосов
/ 02 июня 2016

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

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

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

...