2013-04-30 51 views
1

我沒有很多miglayout的經驗,所以請指教。我有一個佈局,第一列是一個跨越2行的JCheckBox。第二列有2個JLabel,每行1個。MigLayout奇怪的對齊頂部行爲

它似乎默認佈局是複選框被垂直對齊在2行的中心。我希望它與頂部JLabel中的文字對齊,所以我在JCheckBox上使用了aligny top

rightSubPanel.add(stepCheck,"span 1 2, aligny top"); 
rightSubPanel.add(stepTitle); 
rightSubPanel.add(subTitle, "gapleft 40"); 

然而JCheckbox仍然比在相鄰JLabel文本略低。

見所附圖片:

misaligned checkboxes

誰能解釋這或暗示更好的方式來做到這一點?

更新使用調試佈局如下所示。解決的辦法是添加上述各stepTitles諸如5像素的間隙:

rightSubPanel.add(stepTitle,"gaptop 5"); 

enter image description here

回答

1

在MigLayout的構造添加debug標籤。這將顯示每個元素周圍的邊框。我假設你的例子中stepCheck是複選框加上「STEP 1:」。 aligny top將對齊元素的最頂端。我猜這個複選框有一些額外的邊框,所以它的可見部分不在最上面。您可以在stepTitle元素周圍添加一個空白邊框以實現相同效果。

+0

+1對於調試指針 – ajon 2013-06-13 22:26:05

+0

像你說的那樣複選框元素大於JLabel元素。爲了解決這個問題,我在JLabel元素上面添加了一個5像素的間隙。非常感謝! – ajon 2013-06-13 23:17:48