2012-01-21 38 views
10

Tôi cần định vị một JLabel qua một số JButton, theo chiều dọc, giống như một menu trò chơi. Tất cả chúng nên được căn giữa. Tôi đã tải về MigLayout, nhưng tôi không chắc chắn làm thế nào để sử dụng đó, vì vậy tôi chỉ muốn một cách để vị trí các thành phần của tôi theo chiều dọc và trung tâm, MigLayout hay không. Ngoài ra, tôi không muốn sử dụng một nhà thiết kế IDE GUI.Bố cục dọc Java?

+0

* "Tôi không muốn sử dụng trình thiết kế IDE GUI" * +1 :) * Nhà thiết kế có thể * tăng năng suất cho nhà phát triển đã hiểu bố cục và cách kết hợp chúng. Cho đến khi bạn trở nên thành thạo trong các bố cục J2SE cốt lõi (+ có lẽ là một bố cục bên thứ 3 hoặc 3) nó ít hữu ích hơn khi cố gắng thiết kế GUI trong khi chiến đấu với nhà thiết kế GUI. –

+0

Vấn đề là, tôi đã viết tất cả các công cụ GUI của tôi bằng tay (ngoại trừ điều này), và tôi không muốn sửa đổi nó sẽ cung cấp một lợi ích lớn. – Jimmt

Trả lời

22

Bạn có thể sử dụng một (một cột) GridLayout hoặc BoxLayout cho việc này. Xem Using Layout Managers & A Visual Guide to Layout Managers để biết thêm mẹo, ý tưởng và nguồn làm việc.

+3

+1, 10 giây trước tôi – Jeffrey

+0

@Jeffrey Đó có thể là vì tôi đã đăng câu trả lời trước khi chỉnh sửa để thêm liên kết. ;) –

+0

BoxLayout hoạt động tốt cho các nút, nhưng không phải cho JLabels ... JLabel của tôi vẫn được căn chỉnh ở bên trái. – Jimmt

1

Bạn nên sử dụng BoxLayout. Dưới đây là một ví dụ cơ bản

import javax.swing.BoxLayout; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class VerticalPanel extends JPanel { 

    public VerticalPanel() { 
     super(); 
     setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); 

     for (int i = 0; i < 10; i++) { 
      add(new JLabel("Label n°" + i)); 
     } 
    } 

} 
Các vấn đề liên quan