我注意到这个问题是一年前问的,但像我一样,我想很多人在这个论坛帖子上绊倒了,试图制定错误报告中提出的解决方法。
无论如何,JDK 1.6有更好的答案。 流程有以下几种方法:
publicvoidsetalignonbaseline (booleanalignonbaseline )。
如果在flowlayout中使用此方法且设置为true,则在flowlayout中显示组件时,将检查每个组件的基线,并沿该基线对齐组件。
但这不是你应该做的。
相关组件应涵盖以下两种方式:
@Override
公共组件. baselineresizebehaviorgetbaselineresizebehavior {
return component.baselineresizebehavior.constant _ ascent;
}
@Override
publicintgetbaseline(intwidth,int height ) {
返回0;
}
这些是JComponent中的方法,布局和布局管理器使用这些方法来确定组件的布局方式。
执行上述步骤后,所有组件将沿每行的顶部对齐。 当然,如果只使用JButton这样的组件,显然需要进行扩展以实现所需的目标……但是,没有解决方案需要像重写layoutcontainer那样进行调试。 至少我是这么想的。
加油-Asaf