gpt4 book ai didi

java - 为什么 JScrollPane 在包含 JXPanel 时不起作用?

转载 作者:行者123 更新时间:2023-12-01 17:29:09 25 4
gpt4 key购买 nike

我做了一个非常简单的测试用例:

  • 我有一个带有 BorderLayout (panel1) 的全局包含面板
  • 此全局面板包含一个 JScrollPane (scroll1)
  • JScrollPane 包含一个面板,该面板在 PAGE_AXIS (panel2) 上设置了 BoxLayout

然后我用这段小代码将组件(JLabel's)添加到panel2:

for (int i = 0; i < 150; i++) {
panel2.add(new JLabel(String.valueOf(i)));
}
panel2.revalidate();

它有效。现在我想使用我制作的自定义面板,该面板从 SwingX 扩展了 JXPanel。所以 panel2 在我的测试用例中看起来像:

public class Panel2 extends JXPanel {
}

它不再起作用了。滚动条不出现。为什么?在 JScrollPane 中使用 JXPanel 时有什么特别要做的吗?

编辑:

panel2 上使用 setScrollableHeightHint(ScrollableSizeHint.NONE); 后,panel2 根据其中组件的数量调整自身大小,这不是我想要的行为,我希望滚动 Pane 保持固定大小。

最佳答案

看看JXPanel的scrollableHeightHint/scrollableWidthHint属性:它的默认值是FIT,更改为不填充视口(viewport)的模式之一

关于java - 为什么 JScrollPane 在包含 JXPanel 时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12706055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com