在JScrollPane中隐藏JList

时间:2012-12-19 10:09:55

标签: java swing jscrollpane jlist

当我尝试将JList可见性设置为false以隐藏内容时,我发现当我向下滚动时,列表不会被隐藏。我尝试了validate()repaint() JListJScrollPaneJPanelMainPanel),但没有任何变化,我也试过这个:

jScollPane.setVerticalScrollBarPolicy(
    javax.swing.ScrollPaneCantants.HORIZONTAL_SCROLLBAR_NEVER);

另外,没有结果。如果我向下滚动滚动条,列表中的某些元素仍然可见。

1 个答案:

答案 0 :(得分:2)

我至少看到两种方法:

  1. 从滚动窗格中删除JListscrollPane.setViewPortView(null);
  2. JList的模型设置为空模型:list.setModel(new DefaultListModel());
  3. 另一种方法是更改​​JViewPort

    的滚动模式
    scrollpane.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
    

    但当然这根本没有效率。如果您使用该解决方案,当您再次使组件可见时,请务必将滚动模式正确地重置为BLIT_SCROLL_MODEBACKINGSTORE_SCROLL_MODE,这样效率会更高。