Java Swing JPanel和JScrollPane面板的用法(附带实例)
在 Swing 程序设计中,面板是一个容器,用于容纳其他组件,但面板必须添加到其他容器中。
Swing 中常用的面板包括 JPanel 面板和 JScrollPane 面板。下面将分别予以讲解。
【实例】在一个窗体中显示 4 种布局风格的面板。创建 JPanelTest 类,并继承 JFrame 类。首先设置窗体的布局管理器为 2 行 2 列的网格布局管理器,然后创建 4 个面板,并为这 4 个面板设置不同的布局管理器,最后向每个面板中添加按钮。

图 1 JPanel面板的应用
需要注意的是,JScrollPane 滚动面板不能使用布局管理器,且只能容纳一个组件。如果需要向 JScrollPane 面板中添加多个组件,那么需要先将多个组件添加到 JPanel 面板中,再将 JPanel 面板添加到 JScrollPane 滚动面板中。
【实例】为窗体添加上下滚动条。创建 JScrollPaneTest 类,并继承 JFrame 类。首先初始化文本域组件,并指定文本域组件的大小;然后创建一个 JScrollPane 面板,并把文本域组件添加到 JScrollPane 面板中;最后把 JScrollPane 面板添加到窗体中。

图 2 JScrollPane 面板的使用
Swing 中常用的面板包括 JPanel 面板和 JScrollPane 面板。下面将分别予以讲解。
Swing JPanel面板
JPanel 面板继承 java.awt.Container 类。JPanel 面板必须在窗体容器中使用,无法脱离窗体显示。【实例】在一个窗体中显示 4 种布局风格的面板。创建 JPanelTest 类,并继承 JFrame 类。首先设置窗体的布局管理器为 2 行 2 列的网格布局管理器,然后创建 4 个面板,并为这 4 个面板设置不同的布局管理器,最后向每个面板中添加按钮。
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class JPanelTest extends JFrame {
public JPanelTest() {
Container c = getContentPane();
//将整个容器设置为2行2列的网格布局,组件水平间隔10像素,垂直间隔10像素
c.setLayout(new GridLayout(2, 2, 10, 10));
//初始化一个面板,此面板使用1行4列的网格布局,组件水平间隔10像素,垂直间隔10像素
JPanel p1 = new JPanel(new GridLayout(1, 4, 10, 10));
//初始化一个面板,此面板使用边界布局
JPanel p2 = new JPanel(new BorderLayout());
//初始化一个面板,此面板使用1行2列的网格布局,组件水平间隔10像素,垂直间隔10像素
JPanel p3 = new JPanel(new GridLayout(1, 2, 10, 10));
//初始化一个面板,此面板使用2行1列的网格布局,组件水平间隔10像素,垂直间隔10像素
JPanel p4 = new JPanel(new GridLayout(2, 1, 10, 10));
//给每个面板都添加边框和标题,使用BorderFactory工厂类生成带标题的边框对象
p1.setBorder(BorderFactory.createTitledBorder("面板 1"));
p2.setBorder(BorderFactory.createTitledBorder("面板 2"));
p3.setBorder(BorderFactory.createTitledBorder("面板 3"));
p4.setBorder(BorderFactory.createTitledBorder("面板 4"));
//向面板1中添加按钮
p1.add(new JButton("b1"));
p1.add(new JButton("b1"));
p1.add(new JButton("b1"));
//向面板2中添加按钮
p2.add(new JButton("b2"), BorderLayout.WEST);
p2.add(new JButton("b2"), BorderLayout.EAST);
p2.add(new JButton("b2"), BorderLayout.NORTH);
p2.add(new JButton("b2"), BorderLayout.SOUTH);
p2.add(new JButton("b2"), BorderLayout.CENTER);
//向面板3中添加按钮
p3.add(new JButton("b3"));
p3.add(new JButton("b3"));
//向面板4中添加按钮
p4.add(new JButton("b4"));
p4.add(new JButton("b4"));
//向容器中添加面板
c.add(p1);
c.add(p2);
c.add(p3);
c.add(p4);
setTitle("在这个窗体中使用了面板"); //窗体标题
setSize(500, 300); //窗体宽高
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); //关闭动作
}
public static void main(String[] args) {
JPanelTest test = new JPanelTest();
test.setVisible(true);
}
}
运行结果为:
图 1 JPanel面板的应用
Swing JScrollPane滚动面板
JScrollPane 面板是带滚动条的面板,用于在较小的窗体中显示较大篇幅的内容。需要注意的是,JScrollPane 滚动面板不能使用布局管理器,且只能容纳一个组件。如果需要向 JScrollPane 面板中添加多个组件,那么需要先将多个组件添加到 JPanel 面板中,再将 JPanel 面板添加到 JScrollPane 滚动面板中。
【实例】为窗体添加上下滚动条。创建 JScrollPaneTest 类,并继承 JFrame 类。首先初始化文本域组件,并指定文本域组件的大小;然后创建一个 JScrollPane 面板,并把文本域组件添加到 JScrollPane 面板中;最后把 JScrollPane 面板添加到窗体中。
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
public class JScrollPaneTest extends JFrame {
public JScrollPaneTest() {
Container c = getContentPane(); //获取主容器
//创建文本区域组件,文本域默认大小为 20 行、50 列
JTextArea ta = new JTextArea(20, 50);
//创建 JScrollPane 滚动面板,并将文本域放到滚动面板中
JScrollPane sp = new JScrollPane(ta);
c.add(sp); //将该面板添加到主容器中
setTitle("带滚动条的文字编译器");
setSize(400, 200);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
JScrollPaneTest test = new JScrollPaneTest();
test.setVisible(true);
}
}
运行结果如下图所示:
图 2 JScrollPane 面板的使用
图中文字内容是笔者在编辑器窗口中输入的。
相关文章
- Java Swing.JFrame的用法(附带实例)
- Java Swing JDialog对话框的用法(附带实例)
- Java Swing JOptionPane对话框用法详解(附带实例)
- Java Swing FlowLayout布局管理器的用法(附带实例)
- Java Swing BorderLayout布局管理器的用法(附带实例)
- Java Swing JLabel标签的用法(附带实例)
- Java Swing ImageIcon图标类的用法(附带实例)
- Java Swing JButton按钮的用法(附带实例)
- Java Swing JRadioButton单选按钮的用法(附带实例)
- Java Swing JCheckBox复选框的用法(附带实例)
ICP备案:
公安联网备案: