栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java:面板JPanel的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java:面板JPanel的使用

JPanel面板

一、关键代码

(一)、新建面板(二)、面板添加边框(三)、面板选择的布局方法 二、简单说明三、流程图四、源码

(一)、源码A(二)、源码A的运行效果(三)、源码B(四)、源码B的运行效果 五、定位日期

一、关键代码 (一)、新建面板

JPanel p_1=new JPanel();// 创建面板p_1上行代码需要在源码前段添加变量代码:import javax.swing.JPanel;// 面板 (二)、面板添加边框

p_1.setBorder(BorderFactory.createTitledBorder("面板p_1"));// 面板p_1添加边框上行代码说明:给面板p_1添加边框,标题名称“面板p_1”英语单词: Border(边框),Factory(工厂),create(创造),Titled(标题) (三)、面板选择的布局方法

边界布局,面板里建立边界布局,需要添加变量:import java.awt.BorderLayout
p_1.setLayout(new BorderLayout());// 面板p_1建立布局,边界布局

网格布局,面板李建立网格布局,需要添加变量:import java.awt.GridLayout
p_2.setLayout(new GridLayout(5,1,20,5));// p_1建立布局,网格布局;行,列,水平间距,竖直间距

流布局,面板建立流布局,需要在源码前面添加变量:import java.awt.FlowLayout;
p_3.setLayout(new FlowLayout());// p_3建立布局,流布局

二、简单说明

源码的大致思想。先创建一个窗体f,设置好各种属性,如大小、坐标、是否可见、关闭方式等。然后创建一个容器c,容器c用于布置各种“按钮”等组件,以及排布方式。有时候窗体内布置组件需要分开处理布置,此时便可考虑使用面板了。使用面板先划分各面板处在窗体中的各位置。最后,面板里可以添加“按钮”等各种组件,选择不同的布局方法,不同的背景颜色等。各面板之间可以分别布置组件,互不打扰之模式。

注意: 本博文网格布局的行和列运行效果需要注意的。“按钮”数÷行数=n,那么n+1变为列数,列数受手动设置数值的效果不大。具体可以看往期的网格布局的博文。 三、流程图

可以直接在容器c中添加“按钮”等各种构件,也可以在容器c添加面板p后,再在面板p里添加“按钮”等各种构件。添加面板p可以将窗体f分成多个区域,然后对各个区域分别进行构件、排布、尺寸等各属性的设计。

四、源码 (一)、源码A

说明: 窗体f里添加容器c,容器c里添加4个面板,容器c使用网格布局来布置面板,分别设置不同的背景颜色。方法way1为窗体的主要属性。方法way2为添加各面板的各种属性。


import java.awt.Container;// 容器
import java.awt.GridLayout;// 网格布局
import java.awt.Color;// 颜色
import java.awt.BorderLayout;// 边界布局
import java.awt.FlowLayout;// 流布局

import javax.swing.Jframe;// 窗体
import javax.swing.JPanel;// 面板
import javax.swing.BorderFactory;// 边框 工厂
import javax.swing.JButton;// 按钮

class Demo{
	Jframe f=new Jframe();// 新建窗体f
	
	Container c;// 新建“容器”c
	
	
	void way2(){
	c=f.getContentPane();// 容器镶入窗体f中
	// 网格组布局(行数,列数,水平间距,垂直间距)
	c.setLayout(new GridLayout(2,2,20,30));// 容器c建立布局,网格布局
	

	
	JPanel p_1=new JPanel();// 创建面板p_1
	// Border(边框),Factory(工厂),create(创造),Titled(标题)
	p_1.setBorder(BorderFactory.createTitledBorder("面板p_1"));// 面板p_1添加边框
	p_1.setBackground(Color.pink);// 设置背景颜色

	c.add(p_1);// 面板p_1放于容器c中

	
	JPanel p_2=new JPanel();// 创建面板
	// Border(边框),Factory(工厂),create(创造),Titled(标题)
	p_2.setBorder(BorderFactory.createTitledBorder("面板p_2"));// 面板p_2添加边框
	p_2.setBackground(Color.GREEN);// 背景颜色

	c.add(p_2);// 面板p_2放于容器中

	
	JPanel p_3=new JPanel();// 创建面板
	// Border(边框),Factory(工厂),create(创造),Titled(标题)
	p_3.setBorder(BorderFactory.createTitledBorder("面板p_3"));// 面板p_3添加边框
	p_3.setBackground(Color.YELLOW);// 背景颜色

	c.add(p_3);// 面板p_3放于容器中
	
	
	JPanel p_4=new JPanel();// 创建面板
	// Border(边框),Factory(工厂),create(创造),Titled(标题)
	p_4.setBorder(BorderFactory.createTitledBorder("面板p_4"));// 面板p_4添加边框
	p_4.setBackground(Color.BLUE);// 背景颜色

	c.add(p_4);// 面板p_4放于容器中

	}

	
	void way1(){
		f.setSize(900,780);// 窗体f的尺寸

		// Location(位置),Relative(相对的),null则为居中(默认)
		f.setLocationRelativeTo(null);// 居中显示,null(空值)
		
		// Default(默认),Operration(操作),点×程序停止运行
		f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);


	}

	public static void main(String[] args) {
		Demo d=new Demo();// 创建一个Demo类d,class后面的自命名
		d.way1();// 窗体属性
		d.way2();// 容器镶入窗体,设置面板属性

		d.f.setVisible(true);// 窗体可见
	}
}

(二)、源码A的运行效果

(三)、源码B

说明: 在四个面板里添加“按钮”。分别使用边界布局、网格布局、流布局、绝对布局。具体的布局方法说明可以看往期的相关博文。


import java.awt.Container;// 容器
import java.awt.GridLayout;// 网格布局
import java.awt.Color;// 颜色
import java.awt.BorderLayout;// 边界布局
import java.awt.FlowLayout;// 流布局

import javax.swing.Jframe;// 窗体
import javax.swing.JPanel;// 面板
import javax.swing.BorderFactory;// 边框 工厂
import javax.swing.JButton;// 按钮

class Demo{
	Jframe f=new Jframe();// 新建窗体f
	
	Container c;// 新建“容器”c
	
	
	void way2(){
	c=f.getContentPane();// 容器镶入窗体f中
	// 网格组布局(行数,列数,水平间距,垂直间距)
	c.setLayout(new GridLayout(2,2,20,30));// 容器c建立布局,网格布局
	

	
	JPanel p_1=new JPanel();// 创建面板p_1
	p_1.setLayout(new BorderLayout());// 面板p_1建立布局,边界布局
	// Border(边框),Factory(工厂),create(创造),Titled(标题)
	p_1.setBorder(BorderFactory.createTitledBorder("面板p_1"));// 面板p_1添加边框
	p_1.setBackground(Color.pink);// 设置背景颜色

	p_1.add(new JButton("按钮-西"),BorderLayout.WEST);// 边界布局,西
	p_1.add(new JButton("按钮-东"),BorderLayout.EAST);// 边界布局,东,p_1
	p_1.add(new JButton("按钮-北"),BorderLayout.NORTH);// 边界布局,北
	p_1.add(new JButton("按钮-南"),BorderLayout.SOUTH);// 边界布局,南
	p_1.add(new JButton("按钮-中"),BorderLayout.CENTER);// 边界布局,中

	c.add(p_1);// 面板p_1放于容器c中

	
	JPanel p_2=new JPanel();// 创建面板
	p_2.setLayout(new GridLayout(5,1,20,5));// p_1建立布局,网格布局;行,列,水平间距,竖直间距
	// Border(边框),Factory(工厂),create(创造),Titled(标题)
	p_2.setBorder(BorderFactory.createTitledBorder("面板p_2"));// 面板p_2添加边框
	p_2.setBackground(Color.GREEN);// 背景颜色

		
		for(int i=0;i<9;i++){
			p_2.add(new JButton("按钮"+i));
		}
	
	c.add(p_2);// 面板p_2放于容器中

	
	JPanel p_3=new JPanel();// 创建面板
	p_3.setLayout(new FlowLayout());// p_3建立布局,流布局,需要在前面添加import java.awt.FlowLayout;
	// Border(边框),Factory(工厂),create(创造),Titled(标题)
	p_3.setBorder(BorderFactory.createTitledBorder("面板p_3"));// 面板p_3添加边框
	p_3.setBackground(Color.YELLOW);// 背景颜色
	
		
		for(int i_2=0;i_2<9;i_2++){
			p_3.add(new JButton("按钮"+i_2));
		}

	c.add(p_3);// 面板p_3放于容器中
	
	
	JPanel p_4=new JPanel();// 创建面板
	// Border(边框),Factory(工厂),create(创造),Titled(标题)
	p_4.setBorder(BorderFactory.createTitledBorder("面板p_4"));// 面板p_4添加边框
	p_4.setBackground(Color.BLUE);// 背景颜色

	p_4.setLayout(null);// 绝对布局
		JButton b_4=new JButton("按钮p_4");// 创建按钮
		b_4.setBounds(20,40,300,200);// 坐标,尺寸
		p_4.add(b_4);
	
	c.add(p_4);// 面板p_4放于容器中

	}

	
	void way1(){
		f.setSize(900,780);// 窗体f的尺寸

		// Location(位置),Relative(相对的),null则为居中(默认)
		f.setLocationRelativeTo(null);// 居中显示,null(空值)
		
		// Default(默认),Operration(操作),点×程序停止运行
		f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);


	}

	public static void main(String[] args) {
		Demo d=new Demo();// 创建一个Demo类d,class后面的自命名
		d.way1();// 窗体属性
		d.way2();// 容器镶入窗体,设置面板属性

		d.f.setVisible(true);// 窗体可见
	}
}
(四)、源码B的运行效果

五、定位日期

2022.3.23;19:31

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778022.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号