边界布局的注意实例:
().不是五个部分都必须添加
().中部组件会自动的调节大小
().JFrame,JDialog 默认布局管理器就是
BorderLayout // 这句话是什么意思???
//如何显式地为它设置一个布局管理器???
疑问: 我怎么没发现,边界布局管理器的存在呢???
布局管理器是一个对象吗???
是不是就是add()方法???
/*
BorderLayout演示
1.继承JFrame
2.组件直接就方法类的成员变量中
3.创建组件(放到构造函数里面创建)
、、初始化的一些操作,都放到构造函数里面。
4.添加组件(把组件添加到容器中)
5.对顶层容器的窗体进行设置。
6.显示窗体;
7.创建对象。
*/
package com.test1;
import java.awt.*;
import java.swing.*:
public class Demo8_2 extends JFrame // 这里为什么要继承而不直接,导入JFrame包,而使用JFrame类?
{
// 定义组件
JButton jb1,jb2,jb3,jb4,jb5;
public static void main(String[] args)
{
Demo8_2 demo=new Demo8_2();
}
public Demo8_2()
{
//创建组件(放到构造函数里面创建)
jb1=new JButton("中部");
jb2=new JButton("北部");
jb3=new JButton("东部");
jb4=new JButton("南部");
jb5=new JButton("西部");
//添加各个组件
this.add(jb1,BorderLayout.CENTER);//this.add(jb1);这样是错误的
this.add(jb2,BorderLayout.NORTH);
this.add(jb3,BorderLayout.EAST);
this.add(jb4,BorderLayout.SOUTH);
this.add(jb5,BorderLayout.WEST);
// 设置窗体属性
this.setTitle("边界布局案例");
this.setSize(300,200);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT);
// 显示窗体
this.setVisible(true);
}
}
/* 流式布局案例
流式布局管理器的注意事项:
1.不限制他所管理的组件大小,允许他们有最佳大小
2.当容器被缩放时,组件位置可能变化,但组件大小不变
3.默认组件时居中对齐,可以通过FlowLayout(int align)函数来指定对齐方式
*/
packet com.test1;
import java.awt;
import javax.swing;
public class Demo8_3 extend JFrame
{
// 定义组件
Jbutton jb1,jb2,jb3,jb4,jb5;
public static void main(String[] args)
{
}
//构造函数
public Demo8_3()
{
//创建组件
jb1=new JButton("关羽");
jb2=new JButton("张飞");
jb3=new JButton("赵云");
jb4=new JButton("马超");
jb5=new JButton("黄忠");
jb6=new JButton("魏延");
// 添加组件
this.add(jb1);
this.add(jb2);
this.add(jb3);
this.add(jb4);
this.add(jb5);
this.add(jb6);/这样会造成错误
//设置窗体属性
this.setTitle("流式布局案例");
this.setSize(300,200);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.);
// 设置布局管理器
this.setLayout(new FlowLayout(FlowLayout.LEFT));
由这句话,我能否做出判断,JFrame类中含有布局管理器方法,给这个方法传入什么布局管理器对象
就会用什么样的布局管理器,来管理组件的排版。
因此,我理解:
一切都是:对象,对象的方法,给方法传入对象实参
对象的所有操作都是,方法。
对于:XXX的XX,的理解就是:XX是XXX的一个用于完成XX功能的一个方法,可以传入XX对象。
// 显示
this.setVisible();
}
}
面板组件:
/*
功能: 多种布局管理器的使用
JPanel:面板组件:
即:使用JPanel实现混合布局。
我明白了,就是:JFrame有自己的布局,当把面板作为它的组件时,
对于这个面板来说,它是一个独立体,他也可以有自己的布局方式。
*/
package com.test1;
import java.awt.*;
import java.swing.*;
public class Demo8_5 extend JFrame
{
// 定义组件
JPanel jp1,jp2;
JButton jb1,jb2,jb4,jb5,jb6;
public static void main(String[] args)
{
Demo8_5 demo5=new Demo8_5();
}
//构造函数
public Demo8_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
jp1.add(jb1);
jp1.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
jp2.add(jb5);
//把panel加入JFrame
this.add(jp1,BorderLayout.NORTH);
this.add(jp6.BorderLayout.CENTER);
this.add(jp2,BorderLayout.SOUTH);
this.setSize(300,100);
this.setLocation(200,200);
this.setVisible(true);
}
}