2011-12-19 14 views
7

więc jeśli mam JMenu & JMenuBar zdefiniowane tak, że:Wyrównywanie JMenu na prawym rogu JMenuBar w Java Swing

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

// Finally 
setJMenuBar(jMenuBar1); 

i z tego menu „O” jest wyrównany do lewej większości stronie pasek menu. Czy mimo to mogę wyrównać to menu po prawej stronie paska menu?

Odpowiedz

28

Jest łatka dostępna dla tego:

jMenuBar.add(Box.createHorizontalGlue()); 

Dodaj tę linię przed dodaniem do menu paska menu a menu przyjdzie po prawej stronie paska menu. Coś jak:

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

dziękuję to działało :) – Johnydep

+0

poprawna sugestia +1 – mKorbel

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

i nie zapomnij alignt JMenu z JMenuItem zbyt

JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
+0

czy to ma znaczenie? Czy bez korzystania z ComponentOrienatation to działa dobrze? – Johnydep

+0

Jemenu są zawsze umieszczane wewnątrz kontenerów – mKorbel

+0

-1 dla drugiej części: ComponentOrientation nie ma nic wspólnego z wymaganiem (jeśli dobrze rozumiem OP, on/ona ma prosty problem z układem ;-) – kleopatra

2

jak mKorbel powiedzieć o JMenu to działa na JMenuBar jak ten:

jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);