在我的应用程序中,我有两个相同类型的按钮实例(我创建了一个自己的类,其子类是Button,并设置了一个特定的UIID,还做了其他一些事情......)
其中一个被添加到BoxLayout Y中,它作为BorderLayout的中心添加。 BoxLayout中的另一个组件是位于按钮上方的标签。
另一个添加到GridLayout中,在另一个BorderLayout中添加为南。网格是1行3列(按钮是其中一列)。水平尺寸足够大,因此无需将其缩小以适合水平放置。
我的问题是这两个按钮的大小不同。第一个明显大于第二个。我怀疑第二个在这个过程的某个地方变小了,但我不明白为什么。我想让第一个按钮与另一个按钮的尺寸相同,或者相同的垂直尺寸(具有相应的水平尺寸)作为其上方的标签。
我试图使用按钮的setHeight和setPreferredHeight。结果是按钮实际上变小了,但没有上面的图像,所以图像被裁剪了。
我还尝试将setSameHeight与第一个按钮及其上方的标签一起使用,但结果只是标签变大了。
答案 0 :(得分:1)
您遇到的问题是GridLayout容器。
GridLayout的作用是将Container分成3个相同的大小,并缩小任何列中的任何内容以适合其空间。
手上的TableLayout类似于GridLayout,只是它很灵活。它会自行调整以适应其中最大组件的大小。
将GridLayout更改为具有相同行数和列数的TableLayout,并且按钮将被修复。
我建议您在将第二个按钮放入TableLayout之前将其添加到BoxLayout容器中。