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 ?
align 和 valign 属性仅对合并后的列或已与 colspan 或 rowspan 属性合并的行生效。这与 HTML 表格的行为几乎相同。
TableLayout 类只不过是使用 GridBagLayout 的面板。每个表格单元格 (TD) 只是添加到面板的组件,具有特定的 GridBagLayout 约束。这些约束是在 TableLayoutCell 类中预定义的。这些预定义约束之一是weighty,其设置为值 0。这意味着面板/表格将始终垂直居中。