答辩题目:按钮布局

来源:互联网 发布:上古卷轴5清理脏数据 编辑:程序博客网 时间:2024/05/29 13:53
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的默认布局。 一个程序的编程离不开理论知识要点,知识要点的实践也离不开程序的编程,所以这学习编程时,两者不可少。