JViewports 具有 null 布局?
我使用默认布局管理器(使用 viewport.setViewPosition)正确滚动了 JViewport,但是当我调用 setLayout(null) 时,这不再起作用。
有什么想法吗?
如果需要的话我可以提供代码,但目前非常混乱。
谢谢!
编辑:感谢到目前为止提供的信息。我一直在使用空布局,因此我可以绝对定位稍后绘制的组件,有没有办法在使用布局管理器时可以做到这一点?
I got a JViewport correctly scrolling using the default layout manager (using viewport.setViewPosition), but when I call setLayout(null) this no longer works.
Any ideas?
I can give code if needs be, but it's pretty messy at the moment.
Thanks!
Edit: Thanks for the info so far. I've been using a null layout so I can absolutely position components I draw later, is there a way I can do with whilst using a layout manager?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
仅当添加到滚动窗格的组件的首选大小大于滚动窗格的大小时,滚动窗格才起作用。
当您使用空布局时,首选大小为 0,因此滚动窗格不起作用。这就是为什么您应该使用布局管理器。它将确定您的首选尺寸。
Scroll panes only work when the preferred size of the component added to the scroll pane is greater than the size of the scroll pane.
When you use a null layout, the preferred size is 0, so the scroll pane doesn't work. That is why you should use a layout manager. It will determine the preferred size for you.
不要出于任何原因调用 setLayout(null)。
每个组件都应该有一个布局管理器,它决定子组件的大小和位置。因此,请使用合适的 LayoutManager 或实现您自己的。
Don't call setLayout(null) for any reason.
Every Component should have a LayoutManager, that decide about children's size and position. So use a suitable LayoutManager or implement your own.
如果你调用 setLayout(null) 那么你需要
为每个子级调用 Component 类的 setbounds 方法。
也调用repaint方法。
If you call setLayout(null) then you need to
Call the Component class's setbounds method for each children.
also Call repaint method.