package gui;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;

public class T10 {
    /*
     * Swing组件中不仅具有JFrame和JDialog这样的顶级窗口,还提供了一些中间容器,这些容器必须放置在顶级窗口中
     * 1.JPanel:无边框,不能被移动,放大,缩小,或者关闭的面板,默认布局管理器FlowLayout.
     * 2.JScrollPanel:一个带有滚动条的面板容器,而且这个面板只能添加一个组件。
     * 如果想在JScrollPanel面板中添加多个组件,应先将组件添加到JPanel中,然后再将JPanel添加到JScrollPanel
     */
    public static void main(String[] args) {
        JScrollPaneDemo jsp = new JScrollPaneDemo();
        JFrame j = new JFrame();
        j.setTitle("JScrollPaneDemo");
//        创建滚动面板
        JScrollPane sp = new JScrollPane();
//        设置水平滚动条策略--滚动条需要时显示
        sp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//        设置垂直滚动条策略--滚动条一直显示
        sp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
//        定义一个JPanel面板
        JPanel pan = new JPanel();
//        在JPanel面板中添加四个按钮
        pan.add(new JButton("按钮1"));
        pan.add(new JButton("按钮2"));
        pan.add(new JButton("按钮3"));
        pan.add(new JButton("按钮4"));
        pan.add(new JButton("按钮5"));
        pan.add(new JButton("按钮6"));
        pan.add(new JButton("按钮7"));
        pan.add(new JButton("按钮8"));
//        设置JPanel面板在滚动面板中显示
        sp.setViewportView(pan);
//        将滚动面板添加到内容面板的CENTER区域
        j.add(sp, BorderLayout.CENTER);
//        面板可以随时关闭
        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        j.setSize(400, 400);
        j.setVisible(true);
    }
}


结果如下

GUI之Swing组件的JScrollPanel

 

相关文章: