【问题标题】:JScrollPane with JList does not scroll in GridBagLayout带有 JList 的 JScrollPane 在 GridBagLayout 中不滚动
【发布时间】:2012-03-13 12:33:06
【问题描述】:

我在 gridbaglayout 的 jscrollpanes 中有几个 Jlist。 1 个 Jlist 中的条目数量超过了 Jlist 的可见区域。 但是 jscrollpane 不提供滚动功能。

我曾经将所有的 jscrollpane 都包含在一个 jpanel 中,当时 scrollpane 提供了正确的滚动功能。

我将 Jlist 的首选大小设置为 [0,0]。 Jlist 的布局是正确的。 我可以将 JList 的首选大小设置为明确的值,例如 [80,300]。这会导致 JList 可以部分滚动。 JLIst 的实际大小(如果它完全可见的话)要长得多。

不知何故,我猜 gridbaglayout 正在调整我的 Jlist 的大小,以至于 Jlist 无法为滚动窗格提供正确的大小。

如何让 jscrollpanes 中的 gridbaglayout 和 Jlist 协同工作?

【问题讨论】:

    标签: java swing jscrollpane jlist gridbaglayout


    【解决方案1】:

    不要设置JScrollPane 内容的首选大小。改为为 JScrollPanes 设置首选大小。

    【讨论】:

    • 将 Jlist 的首选大小设置为“null”解决了这个问题。我还将 Jscrollpane 的首选大小设置为“null”。
    • 永远不要使用 setXXSize(具有非空维度)。正如您所经历的,@WillamS 消除对组件内部簿记的干扰(通过将其归零)消除了问题:-)
    【解决方案2】:

    谢谢。我有同样的问题,首选尺寸(重置为 [0,0])解决了这个问题。

    【讨论】:

    • 你的意思是新维度(0, 0)?这听起来很奇怪......因为设置任何非空值都会使默认计算短路(这是一件坏事!)
    猜你喜欢
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多