一、为什么要使用面板组件JPanel?
在图形用户界面编程中,如果只是普通的组件布局,我们用基本的三种布局管理器(在我之前的博客中详细介绍了主要的三种布局管理器的使用,下面有文章的链接)就可以了,但是在比较复杂的布局要求时,就需要使用布局管理器的组合使用,这个时候就需要使用到面板组件JPanel。
二、面板组件(JPanel)的使用
JPanel:面板组件,非顶层容器。
一个界面只可以有一个JFrame窗体组件,但是可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout,BorderLayout,GridLayout等各种布局管理器,这样可以组合使用,达到较为复杂的布局效果。
以下案例来说明面板组件的使用:
/*
* 多种布局的使用
* 面板组件JPanel的使用
*/
package com.test1;
import java.awt.*;
import javax.swing.*;
public class Demo1_5 extends JFrame{
//定义组件
JPanel jp1,jp2;
JButton jb1,jb2,jb3,jb4,jb5,jb6;
public static void main(String[] args) {
Demo1_5 dm=new Demo1_5();
}
//构造函数
public Demo1_5()
{
//创建组件
//面板组件JPanel布局模式默认的是流式布局FlowLayout
jp1=new JPanel();
jp2=new JPanel();
jb1=new JButton("西瓜");
jb2=new JButton("苹果");
jb3=new JButton("荔枝");
jb4=new JButton("葡萄");
jb5=new JButton("橘子");
jb6=new JButton("香蕉");
//设置布局,JPanel默认布局FlowLayout,本案例运用到的刚好是流式布局,所以不用设置了
//把组件添加JPanel
jp1.add(jb1);
jp1.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
jp2.add(jb5);
//把JPanel加入到JFrame
this.add(jp1,BorderLayout.NORTH);
this.add(jb6,BorderLayout.CENTER);
this.add(jp2,BorderLayout.SOUTH);
//设置窗口属性
this.setSize(300,200);
this.setLocation(700,500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setVisible(true);
}
}
运行结果: