2010-09-07 40 views
5

Tôi đang cố gắng để xây dựng một bảng điều khiển tình trạng đơn giản sử dụng MigLayout như sau:Làm thế nào để ngăn chặn MigLayout từ vượt quá giới hạn của một thùng chứa

setLayout(new MigLayout("fillx", "[][p]")); // removing constructor args makes no difference 
add(createStatusLabel(), "span 2, wrap"); 
add(createProgressBar(), "growx, pushx"); 
add(createCancelButton(), ""); 

này hoạt động tốt miễn là thông báo trạng thái hiển thị bởi nhãn tình trạng là ngắn đủ để vừa với kích thước của bảng điều khiển hiện tại (nút hủy vẫn giữ nguyên, và thanh tiến trình thay đổi kích thước để chiếm không gian còn lại). Nếu thông báo trạng thái quá dài, nó không bị cắt và khiến vùng vượt quá giới hạn của vùng chứa, dẫn đến nút hủy bị đẩy khỏi màn hình.

Bất kỳ đề xuất nào về cách ngăn điều này xảy ra?

Cảm ơn

Trả lời

8

Thử đặt chiều rộng tối đa của nhãn thành 100%.

Bạn có thể làm điều này bằng cách thay đổi cách bố trí cho các nhãn để "span 2, wrap, wmax 100%"

Trong các thử nghiệm của tôi, tôi thấy rằng nó vẫn không nhìn hoàn toàn đúng, vì vậy bạn có thể muốn trừ một chút chiều dài (một cái gì đó như wmax 100% - 10px) để đưa nó ra khỏi mép.

+1

Cảm ơn - Tôi vừa đăng nhập để trả lời câu hỏi của riêng tôi với cùng một giải pháp, nhưng bạn đã đánh tôi với nó. Tôi cũng thấy 100% là quá lớn - có thể không cho phép biên giới hoặc insets. Tôi cũng đã thử sử dụng tham chiếu "cha mẹ" trong biểu thức chiều rộng, nhưng tôi thấy MigLayout không còn cho phép điều này nữa. (Tôi sẽ bầu bạn nhưng tôi chưa có đủ số điểm) – zorgbargle

+0

Và đây là lý do tại sao tôi thích internet. Cảm ơn cả hai người! –

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