Groovy的SwingBuilder包中的TableLayou支持垂直对齐,但是当我在代码中使用它时,
import groovy.swing.SwingBuilder;
import javax.swing.BorderFactory;
import java.awt.Color;
def ui = new SwingBuilder();
def frame;
frame = ui.frame(title: "Window", bounds: [0, 0, 500, 500], layout: null)
{
tableLayout(size:[400,400],border: BorderFactory.createLineBorder(Color.RED, 2))
{
tr
{
td(valign:'top')
{
label(text:"Label", border: BorderFactory.createLineBorder(Color.BLUE, 2))
}
}
}
}
;
frame.show();
字符串
标签显示为垂直居中而不是位于顶部。是否需要额外的属性来正确对齐,或者它根本不适用于TableLayout?
1条答案
按热度按时间66bbxpm51#
TD的
align
和valign
属性只对已经用colspan
或rowspan
属性合并的列或行生效。这与HTML表的行为几乎相同。TableLayout
类只是一个使用GridBagLayout
的面板。每个表格单元格(TD)只是添加到面板的组件,具有特定的GridBagLayout
约束。这些约束在类TableLayoutCell
中预定义。这些预定义的约束之一是weighty
,设置为0。这意味着面板/表格将始终垂直居中。