韩顺平java 第30讲 布局管理器

边界布局管理器(BorderLayout)

将容器简单分为东南西北中5个区域,中区域最大。

package test;

import java.awt.*;
import javax.swing.*;
import javax.swing.*;

public class MyClass extends JFrame{
    //定义组件
    JButton jb1,jb2,jb3,jb4,jb5;

    public static void main(String[] args) {
        MyClass myclass = new MyClass();
    }

    public MyClass(){
        //创建组件
        jb1 = new JButton("中");
        jb2 = new JButton("东");
        jb3 = new JButton("西");
        jb4 = new JButton("南");
        jb5 = new JButton("北");

        //添加组件
        this.add(jb1,BorderLayout.CENTER);
        this.add(jb2,BorderLayout.EAST);
        this.add(jb3,BorderLayout.WEST);
        this.add(jb4,BorderLayout.SOUTH);
        this.add(jb5,BorderLayout.NORTH);

        this.setTitle("边界布局演示");
        this.setSize(300,200);
        this.setLocation(200, 100);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

边界布局演示

注意事项:

  1. 不是5个部分都必须添加
  2. 中部组件会自动的调节大小
  3. JFrame窗体、JDialog对话框组件默认布局方法

流式布局 FlowLayout

按照组件的添加次序将组件从左到右放置在容器中,当到达容器的边界时,组件将放置在下一行中,FlowLayout可以左对齐、居中对齐、或者右对齐的方式排列组合,但是次序不会因此而改变。

package test;

import java.awt.*;

import javax.swing.*;
import javax.swing.*;

public class MyClass extends JFrame{
    //定义组件
    JButton jb1,jb2,jb3,jb4,jb5;

    public static void main(String[] args) {
        MyClass myclass = new MyClass();
    }

    public MyClass(){
        //创建组件
        jb1 = new JButton("1");
        jb2 = new JButton("2");
        jb3 = new JButton("3");
        jb4 = new JButton("4");
        jb5 = new JButton("5");

        //添加组件
        this.add(jb1);
        this.add(jb2);
        this.add(jb3);
        this.add(jb4);
        this.add(jb5);

        //设置布局管理器
        this.setLayout(new FlowLayout());//默认居中
//      this.setLayout(new FlowLayout(FlowLayout.LEFT));//左对齐
//      this.setLayout(new FlowLayout(FlowLayout.RIGHT));//右对齐

        this.setTitle("流式布局演示");
        this.setSize(300,200);
        this.setLocation(200, 100);
        this.setResizable(false);//禁止改变窗口的大小
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

这里写图片描述

注意

  1. 不限制他所管理的组件大小,允许他们有最佳大小
  2. 当容器缩放时,组件的位置可能变化,但组件的大小不变。
  3. 默认组件是居中对齐,可以指定对齐方式。

网格布局 GridLayout

将容器分成多行多列,组件被从左到右填充到每个网格中。

package test;


import java.awt.*;
import javax.swing.*;
import javax.swing.*;

public class MyClass extends JFrame{
    //定义组件
    JButton jb1,jb2,jb3,jb4,jb5;

    public static void main(String[] args) {
        MyClass myclass = new MyClass();
    }

    public MyClass(){
        //创建组件
        jb1 = new JButton("1");
        jb2 = new JButton("2");
        jb3 = new JButton("3");
        jb4 = new JButton("4");
        jb5 = new JButton("5");

        //添加组件
        this.add(jb1);
        this.add(jb2);
        this.add(jb3);
        this.add(jb4);
        this.add(jb5);

        //设置布局管理器
        this.setLayout(new GridLayout(2,3));


        this.setTitle("网格布局演示");
        this.setSize(300,200);
        this.setLocation(200, 100);
        this.setResizable(false);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

这里写图片描述

注意:

  1. 组件的相对位置不会随容器的缩放而变化,但大小会变化
  2. 所有组件的大小相同
  3. 可以指定网格的行、列、水平间隙、垂直间隙

开发GUI程序步骤

  • 引入包
  • 继承JFrame类
  • 定义组件
  • 创建组件(构造函数)
  • 添加组件
  • 对窗体设置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值