2011-11-09 20 views
2

我得到了一个使用默认布局管理器(使用viewport.setViewPosition)正确滚动的JViewport,但是当我调用setLayout(null)时,这不再起作用。具有空布局的JViewports?

任何想法?

如果需要,我可以提供代码,但目前它非常混乱。

谢谢!

编辑:谢谢你的信息到目前为止。我一直在使用空布局,所以我可以绝对定位后来绘制的组件,在使用布局管理器的同时,我可以使用这种方法吗?

+4

在“我扔掉了我的魔杖,现在我想知道为什么我的咒语不再工作了”:-) – kleopatra

回答

7

只有在添加到滚动窗格中的组件的首选大小大于滚动窗格的大小时,才能使用滚动窗格。

当您使用空布局时,首选大小为0,所以滚动窗格不起作用。这就是为什么你应该使用布局管理器。它将决定你的首选尺寸。

5

出于任何原因,请勿调用setLayout(null)。

每个组件都应该有一个LayoutManager,它决定了孩子的体型和位置。因此,请使用合适的LayoutManager或实施您自己的。

-2

如果您调用setLayout(null),那么您需要 为每个子项调用Component类的setbounds方法。 也调用重绘方法。

+3

孩子的setBounds()方法与滚动无关。 – camickr