当我尝试将JList
可见性设置为false
以隐藏内容时,我发现当我向下滚动时,列表并没有完全隐藏。我已经尝试了JList
,JScrollPane
和JPanel
(MainPanel
)的validate()
和repaint()
,但没有变化,我也尝试过:
jScollPane.setVerticalScrollBarPolicy(
javax.swing.ScrollPaneCantants.HORIZONTAL_SCROLLBAR_NEVER);
另外,没有结果。如果我向下滚动滚动条,列表中的某些元素仍然可见。
我看到至少有两种方法可以做到这一点:
- 从滚动窗格中删除
JList
:scrollPane.setViewPortView(null);
- 将
JList
的模型设置为空模型:list.setModel(new DefaultListModel());
另一种选择是更改JViewPort
的滚动模式:
scrollpane.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
但当然,这根本没有效率。如果您使用该解决方案,则当您使组件再次可见时,请确保还将滚动模式正确重置为效率更高的BLIT_SCROLL_MODE
或BACKINGSTORE_SCROLL_MODE
。