【问题标题】:JScrollPane disappearing on resizeJScrollPane 在调整大小时消失
【发布时间】:2014-06-19 09:18:05
【问题描述】:

我有一个带有垂直滚动条的内容部分,它是窗口的一部分。确切的类是:

JScrollPane scrollPane1;
JEditorPane editorPaneContent;
JPanel contentPanel;

scrollPane1.setViewportView(editorPaneContent);
contentPanel.add(scrollPane1, CC.xy(1, 1));

滚动条不应该总是可见的,如果内容很小,那么它不应该出现。 (到目前为止它有效。)

但是,如果内容很大,并且出现滚动条,调整主窗口(水平)大小有时会使滚动条消失。好奇,一个调整大小使它消失,另一个调整大小使它再次出现。以严格的顺序消失-出现-消失。 即使在调整主窗口大小后,如何强制滚动条出现(仅在内容长度需要时)?

感谢您的帮助,西罗。

【问题讨论】:

  • 尝试为您的问题创建一个运行示例代码,并展示给我们。
  • How can I force the scrollbar, to appear (only when it is needed by the length of the content) even after resizing the main window? - 这是默认行为,假设您已将滚动窗格添加到框架的 BorderLayout 的 CENTER。但是,当您将滚动窗格添加到面板时,您的代码正在使用具有有趣约束的内容面板。所以问题可能出在您在 contentPanel 上使用的布局管理器上。
  • CC是com.jgoodies.forms.factories.CC,用于布局。

标签: java swing jscrollpane layout-manager


【解决方案1】:
scrollPane1.setVertivalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

应该有帮助

【讨论】: