使用GridLayout时如何在JPanel底部添加ScrollBar?

时间:2014-07-09 04:35:45

标签: java swing layout-manager grid-layout jscrollbar

你好我想知道如果我在桌面应用程序中使用GridLayout,如何在JPanel的底部添加ScrollBar,据我所知GridLayout只接受colums,rows和水平和垂直间隙的参数数量。那么如何添加滚动条并使用它来查看JPanel中的信息?

2 个答案:

答案 0 :(得分:3)

JPanelGridLayout放入JScrollPane。例如。正如两列GridLayout所示,它显示添加到nested layout example的标签。

答案 1 :(得分:2)

如果您希望JSrollBar使用gridlayout滚动JPanel,则将网格布局放入滚动窗格(记住扩展可滚动界面)

阅读this page of the tutorial以了解如何使用。

如果您想使用JScrollBar中的事件来更改面板的可见区域,请将面板放在另一个面板中,底部带有JScrollbar。

这是一个绿色面板和底部滚动条

的示例
public class Window extends JFrame {

    public Window() {
        setPreferredSize(new Dimension(500, 500));
        setMinimumSize(new Dimension(500, 500));
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        panel.setPreferredSize(new Dimension(100, 100));
        panel.setBackground(Color.GREEN);
        getContentPane().add(panel, BorderLayout.CENTER);

        JScrollBar scrollBar = new JScrollBar(JScrollBar.HORIZONTAL);
        scrollBar.setMinimum(0);
        scrollBar.setMaximum(100);
        scrollBar.setBlockIncrement(30);
        scrollBar.addAdjustmentListener(new AdjustmentListener() {
            @Override
            public void adjustmentValueChanged(AdjustmentEvent e) {
                 System.out.println("Adjustment changed");
            }
        });
        getContentPane().add(scrollBar, BorderLayout.SOUTH);
        setVisible(true);
    }

    public static void main(String[] args) {
        new Window();
    }
}