答辩题目:按钮布局

import java.awt.*;
import javax.swing.*;
public class LayoutTest extends JFrame{
    JButton btn1,btn2,btn3,btn4,btn5;//定义按钮
    JPanel mainPan;
    FlowLayout fLayout;//定义流式布局
    GridLayout gLayout;//定义网格布局
    BorderLayout bLayout;//定义边界布局
    CardLayout cLayout;//定义卡片布局
    public LayoutTest(String layoutstyle){
        super("布局方式:"+layoutstyle);
        mainPan=new JPanel();
        fLayout=new FlowLayout(FlowLayout.LEFT);//创建流式布局方式的对象
        gLayout=new GridLayout(3,2);//创建网格布局方式的对象
        bLayout=new BorderLayout();//创建边界布局方式的对象
        cLayout=new CardLayout(10,10);//创建卡片布局方式的对象
        if(layoutstyle=="fLayout")//判断采用流式布局
            mainPan.setLayout(fLayout);
        else if(layoutstyle=="gLayout")//判断网格流式布局
            mainPan.setLayout(gLayout);
        else if(layoutstyle=="bLayout")//判断采用边界布局
            mainPan.setLayout(bLayout);
        else if(layoutstyle=="cLayout")//判断采用卡片布局
            mainPan.setLayout(cLayout);
        else
            System.out.println("布局方式输入错误!");
        getContentPane().add(mainPan);//参加按钮类的对象
        btn1=new JButton("按钮1");//创建按钮类的对象
        btn2=new JButton("按钮2");//创建按钮类的对象
        btn3=new JButton("按钮3");//创建按钮类的对象
        btn4=new JButton("按钮4");//创建按钮类的对象
        btn5=new JButton("按钮5");//创建按钮类的对象
        if(layoutstyle=="fLayout"||layoutstyle=="gLayout"){//定义流式布局或网格布局的布局方式
            mainPan.add(btn1);
            mainPan.add(btn2);
            mainPan.add(btn3);
            mainPan.add(btn4);
            mainPan.add(btn5);
        }
        if(layoutstyle=="bLayout"||layoutstyle=="cLayout"){//定义边界布局或卡片布局的布局方式
            mainPan.add(btn1,"East");
        mainPan.add(btn2,"South");
        mainPan.add(btn3,"West");
        mainPan.add(btn4,"North");
        mainPan.add(BorderLayout.CENTER,btn5);
    }
     setSize(250,150);//设置界面的跨度和高度
     setVisible(true);//设置界面的可见性
     setDefaultCloseOperation(EXIT_ON_CLOSE);//设置窗口关闭时默认操作

    }

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
          new LayoutTest("fLayout");//实例化
          new LayoutTest("gLayout");
          new LayoutTest("bLayout");
          new LayoutTest("cLayout");
    }

}

运行结果这里写图片描述

知识点:
该程序实现了4种不同的按钮布局,这四种布局分别是FlowLayout、BorderLayout、CardLayout、GridLayout。
(1)FlowLayout(流式布局):将组件从上到下,从左到右依次摆放,每行均居中,是Panel、Applet的默认布局。
(2)BorderLayout(边界布局):将容器内空间划分为东南西北中五个方位,布局时要指明组件所在方位,它是Window、Dialog、Frame默认布局方式。
(3)CardLayout(卡片布局):将组件像卡片一样放在容器内,在某一个时刻只有一个组件可见。
(4)GridLayout(网格布局):这个布局类似一个无框线的表格,每个单元格中放置一个组件。

心得体会:通过这个程序我知道了布局,也了解容器内组件的位置和大小是由布局管理器决定的,在这个程序中学到了四个布局方式的知识要点;比如FlowLayout(流式布局)将组件从上到下,从左到右依次摆放,每行均居中,是Panel、Applet的默认布局。 一个程序的编程离不开理论知识要点,知识要点的实践也离不开程序的编程,所以这学习编程时,两者不可少。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值