2010-09-07 40 views
5

我試圖建立基於MigLayout一個簡單的狀態面板如下:如何防止MigLayout超過容器的邊界

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

這隻要通過身份標籤顯示的狀態消息是短工作正常足以適應當前面板的大小(取消按鈕保持右對齊,並且進度條調整大小以佔用剩餘空間)。如果狀態消息太長,它不會被裁剪,並導致該區域超出容器邊界,導致取消按鈕被推離屏幕。

關於如何防止這種情況發生的任何建議?

謝謝

回答

8

嘗試設置標籤的最大寬度爲100%。

您可以通過更改標籤佈局"span 2, wrap, wmax 100%"

在我的測試中做到這一點,我發現,它仍然沒有看起來相當正確的,所以你可能要長減去一點點(東西如wmax 100% - 10px)將其從邊緣帶走。

+1

謝謝 - 我只是用相同的解決方案登錄來回答我自己的問題,但是你打敗了我。我還發現100%太大 - 可能不允許邊界或插入。我也嘗試在寬度表達式中使用「父」參考,但我看到MigLayout不再允許這樣做。 (我會投票給你,但我還沒有足夠的積分) – zorgbargle 2010-09-11 09:06:48

+0

這就是爲什麼我喜歡上網。謝謝你們倆! – 2012-06-29 19:50:15