java常用面板(JPanel、JScrollPane)

面板也是一个Swing容器,可以作为容器容纳其他组件,但它必须被添加到其他容器中,Swing中常用的面板包括JPanel面板以及JScrollPane面板,下面分别讲解Swing中的常用面板

JPanel面板

JPanel面板是一种容器,继承自java.awt.Container类,JPanel面板可以聚集一些组件来布局,但必须依赖于JFrame窗体进行使用,下面一个例子讲解JPanel面板使用方法,代码如下:


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 Demo extends JFrame {
	public JPanelTest() {
		Container c = getContentPane();
		// 将整个容器设置为2行1列的网格布局,组件水平间隔10像素,垂直间隔10像素
		c.setLayout(new GridLayout(2, 1, 10, 10));
		// 初始化一个面板,此面板使用1行3列的网格布局,组件水平间隔10像素,垂直间隔10像素
		JPanel p1 = new JPanel(new GridLayout(1, 3, 10, 10));
		JPanel p2 = new JPanel(new BorderLayout()); // 使用边界布局
		JPanel p3 = new JPanel(new GridLayout(1, 2, 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"));
		// 在面板中添加按钮
		p1.add(new JButton("b1"));
		p1.add(new JButton("b1"));
		p1.add(new JButton("b1"));
		p1.add(new JButton("b1")); // 1行3列基础上,仍然可以添加组件
		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"));
		p3.add(new JButton("b3"));
		p3.add(new JButton("b3"));
		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);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); // 关闭动作
	}

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

返回结果:

java常用面板(JPanel、JScrollPane)_第1张图片

JScrollPane滚动面板

在设置页面时,可能会遇到在一个较小的容器中显示一个较大的内容情况,这时可以使用JScrollPane面板,JScrollPane面板是带滚动条的面板,它也是一种容器,但是JScrollPane中只能放置一个组件,并且不可以使用布局管理器,如果需要在JScrollPane面板中放置多个组件,需要将多个组件放置在JPanel面板上,然后将Jpanel面板作为一个整体组件添加到JScrollPane组件上。

下面是一个使用JScrollPane面板来实现滚动条的文字编辑器实例,代码如下:


import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;

public class Demo extends JFrame {
	public Demo() {
		Container c = getContentPane(); // 创建容器
		// 创建文本区域组件,文本域默认大小为20行、50列
		JTextArea ta = new JTextArea(20,50);
		 // 创建JScrollPane滚动面板,并将文本域放到滚动面板中
		JScrollPane sp = new JScrollPane(ta);
		c.add(sp); // 将该面板添加到该容器中
		setTitle("带滚动条的文字编译器");
		setSize(200, 200);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
	}
	public static void main(String[] args) {
		new Demo();
	}
}

返回结果:

java常用面板(JPanel、JScrollPane)_第2张图片

你可能感兴趣的:(java常用面板(JPanel、JScrollPane))