【发布时间】:2014-10-07 22:06:47
【问题描述】:
我无法解决以下两个问题。
问题 1
我有一个JScrollPane 类型的面板,它承载了一个JPanel。 JPanel,在程序执行期间,接收到越来越多的子面板来托管,因此它的高度逐渐增加(它正在使用流布局管理器)。我想要并且无法实现的是,当JPanel 的内容变得高于窗口时(由于添加了许多组件),使JScrollPane 面板显示垂直滑动条。
到目前为止,我已经设法让用户可以向JPanel 添加子面板。但是,当它们变得太多,并且其中一些离开屏幕时,垂直滑动条不会出现。我怎样才能让他们这样做?
请注意,我希望窗口宽度可以调整。当窗口调整大小时,JPanel 应该重新计算它的高度,并相应地调整幻灯片。
问题 2
在JPanel 中,我在问题 1 中告诉过您,我使用的是流布局管理器,它将组件设置为水平线。但是,我更喜欢垂直配置,它应该将所有组件添加到另一个正下方,而不是像中心一样的配置。它们应该如下所示:
O============O
|COMP.1=== |
|COMP.2= |
|COMP.3===== |
| |
| |
O============O
不是这样的:
O============O
|COMP.1=== |
| |
|COMP.2= |
| |
|COMP.3===== |
O============O
在保持对问题 1 解决方案的兼容性的同时,获得此最终配置的最佳布局管理器是什么? (也就是说,在添加每个组件后调整JPanel 的高度?)
非常感谢您的帮助!
【问题讨论】:
-
您可以使用
GridBagLayout,稍加调整即可完成这项工作,或者使用来自 SwingLabs、SwingX 库的VerticalLayout
标签: java swing jscrollpane layout-manager vertical-scrolling