2011-12-19 10 views
7

Quindi, se ho un JMenu & JMenuBar definita in modo tale che:Allineamento JMenu sull'angolo destro della JMenuBar in Java Swing

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

// Finally 
setJMenuBar(jMenuBar1); 

e con questo il menu "About" è allineato ai più lato sinistro della barra dei menu. C'è comunque che posso allineare questo menu sul lato più a destra della barra dei menu?

risposta

28

C'è una patch disponibile per questo:

jMenuBar.add(Box.createHorizontalGlue()); 

Aggiungi questa linea prima di aggiungere menu Barra dei menu e menu arriverà sul lato destro della barra dei menu. Qualcosa di simile:

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

grazie ha funzionato :) – Johnydep

+0

suggerimento corretto +1 – mKorbel

5
jMenuBar1.add(Box.createHorizontalGlue()); 

e non dimenticare alignt JMenu con JMenuItem troppo

JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
+0

questo fa alcuna differenza? Come senza usare ComponentOrienatation funziona bene? – Johnydep

+0

Gli oggetti JMenu sono sempre posizionati all'interno dei contenitori – mKorbel

+0

-1 per la seconda parte: ComponentOrientation non ha nulla a che fare con il requisito (se ho capito bene l'OP, ha un semplice problema di layout ;-) – kleopatra

2

come ha detto mKorbel per la JMenu funziona su un JMenuBar come questo:

jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);