面板组件(Jpanel)
为什么有?
基本的三种布局方式不能满足需求!就需要布局管理器的组合使用。如下图的布局
怎么用:一个界面只可以有一个JFrame,但可以有多个Jpanel。而Jpanel可以调用JFrame下的组件(如:JButton)
即在JFrame的三大分布形式上放置Jpanel,然后在Jpanel上再采用三大分布形式。。。。(不过Jpanel的默认布局是流式布局)
/**
* @author 司**
* 功能:Jpanel的使用------混合分部管理器的使用
* 1、继承JFrame
* 2、定义需要的组件
* 3、创建组件(构造函数中较好)
* 4、添加组件
* 5、设置窗体属性
* 6、显示窗体
*/
package com.gui;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Demo5 extends JFrame{
//定义所需组件
JPanel jPanel1,jPanel2;
JButton jButton1,jButton2,jButton3,jButton4,jButton5,jButton6;
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo5 demo5=new Demo5();
}
public Demo5(){
//创建组件
jPanel1=new JPanel();
jPanel2=new JPanel();
jButton1=new JButton("西瓜");
jButton2=new JButton("苹果");
jButton3=new JButton("荔枝");
jButton4=new JButton("葡萄");
jButton5=new JButton("橘子");
jButton6=new JButton("香蕉");
//设置窗口外观属性
//设置布局(默认为边界布局,采用默认)
//窗体其他属性
this.setTitle("网格布局管理器");
this.setSize(300, 200);
this.setLocation(100, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
//添加组件
//添加Jpanel组件.和Jbutton
this.add(jPanel1, BorderLayout.NORTH);
this.add(jButton6, BorderLayout.CENTER);
this.add(jPanel2, BorderLayout.SOUTH);
//设置Jpanel的布局(默认为流式布局,采用默认)
//添加按钮组件到jpanel也即Jframe中
jPanel1.add(jButton1);
jPanel1.add(jButton2);
jPanel2.add(jButton3);
jPanel2.add(jButton4);
jPanel2.add(jButton5);
//显示
this.setVisible(true);
}
}