Java学习笔记-------布局管理器

边界布局的实例:


边界布局的注意实例:
().不是五个部分都必须添加
().中部组件会自动的调节大小
().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);
}


}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值