【发布时间】:2011-03-24 13:15:07
【问题描述】:
我创建了一个JFrame,并使用BorderLayout 和JScrollPane 作为其CENTER 元素进行了初始化。
滚动窗格设置有VERTICAL_SCROLLBAR_ALWAYS 和HORIZONTAL_SCROLLBAR_NEVER 策略。我的frame 的目的是控制宽度,而高度应该随着数据的添加/删除而增长/缩小。
在我的scroll pane 中,我添加了一个简单的JPanel(我们称之为内容面板),它使用FlowLayout(和LEADING 策略)进行初始化。
为了对此进行测试,我只需用 20 个JLabel("Item " + n) 组件填充我的content panel,其中n 是循环计数器。
如果frame 足够大并且当我缩小宽度时标签会换行到其他行,我希望看到我的labels 显示在一行上。但取而代之的是,只显示了一行,没有换行……永远。
有谁知道为什么flow layout 在涉及scroll pane 时不换行?
如果我将scroll pane 全部删除并将content panel 直接放在frame 中,则会出现所需的环绕效果,但如果frame 高度缩小到小于content panel 高度,它就会消失.
我的想法是,我希望我的labels 在必要时被包装,但如果这意味着必须向上/向下滚动,也始终可见。
关于如何解决此问题的任何建议?
谢谢。
【问题讨论】: