我有一个插入主内容窗格的组件,由于某种原因,它没有填充该区域。
getInstance().add(internalPanel, LayoutFactory.newFactory().setX(1).setY(1).
setWeightX(1).setWeightY(1).setFill(GridBagConstraints.BOTH));
我专门为LayoutFactory
制作了GridBagLayout
,它只是设置属性并返回对象。
基本上,问题是当我将组件添加到内容窗格时,它不会填充专用的空间。它需要绝对最小值,好像weightX
和weightY
设置为0.我尝试setAnchor(GridBagConstraints.FIRST_LINE_START)
和setAnchor(GridBagConstraints.NORTHWEST)
。对程序没有任何明显的影响。
此外,当我设置组件的边框时,它只填充部分空间,因此我添加的组件不会出现问题。
值得注意的是,该组件显示在空间的中心,而不是跟随锚点。从here开始,我发现我的问题是weightX
和weightY
属性。查看内容窗格的其他组件,可以在每个组件上设置权重。
getInstance().add(MainFrame.buttons, LayoutFactory.newFactory().setX(0).setY(1).
setWeightY(1).setWeightX(0).setFill(GridBagConstraints.BOTH));
和
getInstance().add(panel, LayoutFactory.newFactory().setX(0).setY(0).setWidth(2)
.setWeightX(1).setWeightY(0).setAnchor(GridBagConstraints.FIRST_LINE_START)
.setFill(GridBagConstraints.NONE));
当然其他地方出现问题肯定是可能的,但我不想用文字淹没这篇文章。如果您需要更多信息来解决这个问题,我很乐意提供它。希望这是有道理的。我一直在使用GridBagLayout
一段时间,我从来没有碰到过这样的事情。
Here is an image of what it looks like in the space it is supposed to be
编辑:发现问题出现在其他地方,因为制作一个小示例程序工作正常。由于我有点难过,I uploaded a full version of the program I am working on.不要担心它实际上做了什么,我只关心工作量面板没有填补空间。答案 0 :(得分:0)
问题解决方案:
是将组件添加到InternalPanel
类型对象,该对象没有布局管理器。 (默认为flowLayout)