我用从数据库中读取的动态内容填充 GridBagLayout JPanel。我的问题是我是否能找到将最后一个 rowWeights 设置为 1.0 的方法。通常,当我创建静态 GridBagLayout 面板时,我可以执行以下操作:
GridBagLayout gbl_accPanel = new GridBagLayout();
gbl_accPanel.columnWeights = new double[]{1.0};
gbl_accPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 1.0};
accPanel.setLayout(gbl_accPanel);
但是现在,就我而言,我不知道我会有多少行,所以我需要一种将所有内容推送到顶部的方法,这意味着使最后一行的权重为 1.0 以填充我的容器的其余部分。
显然,我可以计算我添加的元素,而不是设置 rowWeights,而不是 revalidate(); 重绘();但我不喜欢这种方法。那么有没有更好的方法呢?
如果我的问题不清楚,这是一张图片:
我现在在做什么:
public void setAccountRowWeights(int n)
{
weights = new double[n];
for(int i=0; i<n-1; ++i)
weights[i] = 0.0;
weights[n-1] = 1.0;
gbl_accPanel.rowWeights = weights;
}