2011-12-19 30 views
7

Vì vậy, nếu tôi có một JMenu & JMenuBar xác định sao cho:Aligning JMenu trên góc bên phải của JMenuBar trong Java Swing

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

// Finally 
setJMenuBar(jMenuBar1); 

và với điều này Menu "Giới thiệu" được liên kết với hầu hết phía bên trái của thanh menu. Có anyway mà tôi có thể sắp xếp menu này ở phía bên phải của thanh trình đơn?

Trả lời

28

Có một miếng vá có sẵn cho việc này:

jMenuBar.add(Box.createHorizontalGlue()); 

Thêm dòng này trước khi thêm menu để menubar và thực đơn của bạn sẽ đi vào phía bên phải của thanh menu. Một cái gì đó như:

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

cảm ơn nó đã hoạt động :) – Johnydep

+0

đề xuất chính xác +1 – mKorbel

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

và đừng quên alignt JMenu với JMenuItem quá

JMenu.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
+0

có tạo nên sự khác biệt nào không? Như mà không cần sử dụng ComponentOrienatation nó hoạt động tốt? – Johnydep

+0

JMenuItems luôn được đặt bên trong Containers – mKorbel

+0

-1 cho phần thứ hai: ComponentOrientation không có gì để làm với yêu cầu (nếu tôi hiểu OP một cách chính xác, anh ta có một vấn đề bố cục đơn giản ;-) – kleopatra

2

như mKorbel nói cho JMenu nó hoạt động trên một JMenuBar như thế này:

jMenuBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
Các vấn đề liên quan