2011-06-24 29 views
26

Tôi đang sử dụng một GridLayout và mã của tôi là như sau:Làm cách nào để tôi có thể làm cho các cột có kích thước khác nhau bằng GridLayout khi xoay?

int changingVar = 1; 

JPanel panel = new JPanel(new GridLayout(changingVar, 2)); 
panel.add(new JButton("BUTTON1")); 
panel.add(new JButton("BUTTON2")); 

này trông giống như:

___________________________________________ 
| [  BUTTON1  ] [  BUTTON2  ] | 
___________________________________________ 

đó là hai cột đồng đều kích thước. Tôi muốn làm như sau:

___________________________________________ 
| [   BUTTON1   ] [ BUTTON2 ] | 
___________________________________________ 

trong đó một cột chiếm nhiều không gian bảng điều khiển hơn. Làm cách nào để làm điều này với gridlayout? Tôi không phản đối việc sử dụng bố cục khác miễn là tôi có thể có số lượng hàng và cột khác nhau có hai kích thước khác nhau.

Cảm ơn

Trả lời

19

Nếu bạn muốn hiệu ứng này thì bạn cần sử dụng GridBagLayout.

http://download.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

Hãy vui vẻ với điều đó một = P

EDIT:

Bạn có thể làm việc xung quanh vấn đề bằng cách sử dụng một hỗn hợp của FlowLayout và GridLayout để có được một hiệu ứng tương tự. Tuy nhiên, giải pháp này sẽ trở nên vô cùng tẻ nhạt và lộn xộn vì sự phức tạp của bố cục của bạn trở nên lớn hơn.

+1

Tôi đã sử dụng GridBag trước đây nhưng tôi đã hy vọng chỉ có một điều chỉnh_column (column_num) kinda chức năng cho gridlayout – Grammin

+1

@Grammin Ghi nhớ rằng tôi đã không theo kịp với các thay đổi API java trong hai năm qua. Có nói rằng, tôi đã xuống con đường cùng bạn đang đứng đầu. Theo tôi biết, các kích thước đều đồng nhất trong GridLayout chuẩn. Do đó, việc bổ sung GridBadLayout cho phép các kích thước khác nhau của các phần tử cột và hàng –

+0

Đủ tốt cho tôi, Cảm ơn! – Grammin

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