You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy TableLayout valign属性无效:标签未顶部对齐如何解决?

Groovy SwingBuilder TableLayout valign不生效的解决办法

你遇到的问题是因为TableLayout的单元格默认开启了垂直填充(fillY: true),这会让单元格占满整行高度,组件会被居中显示,直接覆盖了valign:'top'的设置。

解决方法很简单,给td添加fillY: false属性关闭垂直填充,valign的设置就能正常生效:

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', fillY: false)
           {
               label(text:"Label", border: BorderFactory.createLineBorder(Color.BLUE, 2))
           }
       }
   }
}
frame.show();

如果需要让行占满整个TableLayout的高度,同时组件保持顶部对齐,可以给tr加上height: '*'(表示行占用剩余所有高度),配合td的fillY: false和valign:'top':

tr(height: '*')
{
    td(valign:'top', fillY: false)
    {
        label(text:"Label", border: BorderFactory.createLineBorder(Color.BLUE, 2))
    }
}

这样设置后,标签就会固定在TableLayout的顶部区域,不会再居中显示。

内容的提问来源于stack exchange,提问作者Vlad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 06:25:00