0

我有一个未装饰JFrame的,里面有很多components东西(比如JSplitPanesJPanels with GridBagLayouts, BoxLayouts, BorderLayouts等等)。构建它的代码JFrame2500行长,所以我不会放在这里,或者它是简单的版本,对不起。

当我拖动它JFramerightbottom它可以调整大小,但是当我拖动它时lefttop里面components抽搐很多JFrame,所以看起来很丑。

我的问题是:为什么会这样?我怎样才能防止它(如果可以的话)?有没有人在自己的实践中解决这个问题?

UPD:我已经为JFrame. 它适用于组件数量较少的其他窗口。

4

1 回答 1

4

调整框架的大小会隐式验证封闭的Container,这会导致doLayout()在每次大小更改时在受影响的组件上调用。paintComponent()在调整 this 大小时,您可以在重复调用 to 时看到类似的效果AnimationTest。正如您所观察到的,使用数千个组件的扩展性很差。作为替代方案,利用享元模式仅渲染可见单元格,如 , , 等中所做的那样JTableJTree如果JList您不能使用其中之一,请CellRendererPane参见此处,可能会有所帮助。

于 2013-07-01T13:55:23.893 回答