Xin chào mọi người, tôi có một JFrame có ba thành phần bên trong.Java Swing: Làm thế nào tôi có thể thay đổi kích thước của một hàng trong bố cục lưới và cho phép nó thay đổi kích thước động chỉ theo chiều ngang và không theo chiều dọc?
- Một menu
- Một tab pane
- một bảng điều khiển có một số nút
Ban đầu mục tiêu của tôi là tạo ra một thiết kế như sau:
khi người dùng sẽ thay đổi kích thước ứng dụng, mọi thứ sẽ được thay đổi kích cỡ. Vì vậy, tôi nghĩ có lẽ nếu tôi sử dụng một cách bố trí lưới đơn giản vấn đề của tôi sẽ được giải quyết, vì vậy tôi đã quyết định làm như sau:
Các cửa sổ tab sẽ có một số tấm bên trong và những tấm pin sẽ làm theo cách bố trí lưới điện.
Bảng điều khiển ở dưới cùng sẽ theo bố cục lưới.
JFrame cũng sẽ theo bố cục lưới.
Kết quả:
Như bạn có thể thấy điều này không phải là những gì tôi muốn, các nút là quá lớn và mặc dù việc áp dụng thay đổi kích thước rất tốt:
Các nút cũng thay đổi kích thước nhưng chúng vẫn quá lớn. Tôi muốn có thể đặt kích thước nhỏ cho các nút (cụ thể hơn là bảng điều khiển được chứa) và khi người dùng thay đổi kích thước ứng dụng, các nút sẽ chỉ thay đổi kích thước theo chiều ngang không bao giờ theo chiều dọc. theo chiều dọc. Điều này có thể đạt được không? Tôi đã tìm kiếm và phát hiện ra về gridbaglayout, tôi bắt đầu chơi một chút, nhưng tôi đã không đạt được bất cứ điều gì. Tất cả tôi cố gắng làm là như sau:
có vẻ tốt, nhưng khi tôi thay đổi kích thước này là những gì tôi nhận được:
cảm ơn trước.
+1 Tôi nghĩ rằng điều này sẽ làm việc quá. Sau đó, 'setPreferredSize' cho bảng điều khiển thấp hơn. Điều đó sẽ làm cho chiều cao của nó không đổi. Không đặt kích thước cho bảng điều khiển trung tâm. Bằng cách đó mọi thứ khác duy trì kích thước trong khi chỉ có trung tâm mở rộng khi bạn mở rộng cửa sổ. Ngoài ra, bảng điều khiển bên dưới nên sử dụng 'FlowLayout'. – davidXYZ
@davidXYZ Không cần đặt kích thước ưa thích trên bảng điều khiển bên dưới. đặt kích thước ưa thích là ngoại lệ! –
@davidXYZ Bạn có thể muốn đọc [this] (http://stackoverflow.com/questions/7229226/should-i-avoid-the-use-of-setpreferredmaximumminimumsize-methods-in-java-swi) trước bạn bắt đầu rối tung với các kích thước pref/max/min – MadProgrammer