如何隐藏但不禁用JScrollPane中的滚动条?

时间:2015-03-23 14:23:38

标签: java swing

我尝试过这样的事情:

    getHorizontalScrollBar().setPreferredSize (new Dimension(0,0)); 

    setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

但它也会禁用滚动条。

2 个答案:

答案 0 :(得分:1)

对我来说很好:

import java.awt.*;
import javax.swing.*;

public class TableHorizontal
{
    private static void createAndShowGUI()
    {
        final JTable table = new JTable(10, 10);
        table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
        JScrollPane scrollPane = new JScrollPane( table );
        scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

        JFrame frame = new JFrame("SSCCE");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add( scrollPane );
        frame.setLocationByPlatform( true );
        frame.pack();
        frame.setVisible( true );
    }

    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowGUI();
            }
        });
    }
}

以上代码为SSCCE。如果您需要更多帮助,请发布展示您问题的正确SSCCE。所有问题都应该包含SSCCE,而不是像#34;它没有' work",它准确地证明了你要做的事情。

答案 1 :(得分:0)

试试这个。

panLeft.setLayout(null);
panLeft.setPreferredSize(null);
panLeft.addMouseWheelListener(new MouseWheelListenerPanLeft());

scrollPaneLeft.getVerticalScrollBar().setPreferredSize(new Dimension(0, 0));
scrollPaneLeft.getViewport().setBorder(null);
scrollPaneLeft.setViewportBorder(null);
scrollPaneLeft.setBorder(null);