我使用默认布局管理器(使用viewport.setViewPosition)正确滚动JViewport,但是当我调用setLayout(null)时,这不再有效。
有什么想法吗?
如果需要,我可以提供代码,但目前它非常混乱。
谢谢!
编辑:感谢您的信息到目前为止。我一直在使用null布局,所以我可以绝对定位我稍后绘制的组件,在使用布局管理器时有什么办法吗?
答案 0 :(得分:7)
滚动窗格仅在添加到滚动窗格的组件的首选大小大于滚动窗格的大小时才起作用。
使用空布局时,首选大小为0,因此滚动窗格不起作用。这就是你应该使用布局管理器的原因。它将确定您的首选尺寸。
答案 1 :(得分:5)
不要出于任何原因调用setLayout(null)。
每个组件都应该有一个LayoutManager,用于决定孩子的大小和位置。所以使用合适的LayoutManager或实现自己的。
答案 2 :(得分:-2)
如果你调用setLayout(null),那么你需要 为每个子节点调用Component类的setbounds方法。 还要调用重绘方法。