在JScrollPane中隐藏JScrollBar

时间:2013-07-09 15:14:59

标签: java swing jscrollpane jscrollbar

更新:第二个解决方案完美无缺,但你必须小心你的某些对象的大小,以便ScrollBar没有活动的默认值。你无法隐藏你必须做出选择;)

我想隐藏ScrollBar但仍能滚动我的JScrollPane。 我试过这个:

scrollPane.setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_NEVER);

但我不能再滚动了:(我也试过这个:

scrollPane.getVerticalScrollBar().setPreferredSize (new Dimension(0,0));
scrollPane.getHorizontalScrollBar().setPreferredSize (new Dimension(0,0));
scrollPane.getVerticalScrollBar().setMinimumSize(new Dimension(0, 0));
scrollPane.getVerticalScrollBar().setMinimumSize(new Dimension(0, 0));
scrollPane.getVerticalScrollBar().setMaximumSize(new Dimension(0, 0));
scrollPane.getVerticalScrollBar().setMaximumSize(new Dimension(0, 0));

但滚动时仍然可以看到ScrollBar的1个像素(默认情况下我认为):(

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

panLeft.setBackground(new Color(1, 0, 0, 0));
panLeft.setLayout(null);
panLeft.setPreferredSize(null);
panLeft.addMouseWheelListener(new MouseWheelListenerPanLeft());
scrollPaneLeft.setBounds(10, 35, 250, 525);
scrollPaneLeft.setBackground(new Color(1, 0, 0, 0));
scrollPaneLeft.getVerticalScrollBar().setPreferredSize(new Dimension(0, 0));
scrollPaneLeft.getViewport().setBorder(null);
scrollPaneLeft.setViewportBorder(null);
scrollPaneLeft.setBorder(null);