awt_LayOutManager布局管理器

1.FlowLayOut流式布局

import java.awt.*;

//设置一个布局管理器FlowLayOut
public class awtDemo3 {
    public static void main(String[] args) {
        Frame frame=new Frame();
//        使用默认的对齐方式及默认的垂直间距、水平间距创建FlowLayout布局管理器。
//        FlowLayout()
//        使用指定的对齐方式及默认的垂直间距、水平间距创建FlowLayout布局管理器。
//        FlowLayout(int align)
//        FlowLayout(int align,int hgap,int vgap)
//        使用指定的对齐方式及指定的垂直问距、水平间距创建FlowLayout 布局管理器

       frame.setLayout(new FlowLayout(FlowLayout.LEFT,40,20));//设置的是左对齐
       for(int i=0;i<100;i++){
           frame.add(new Button("按钮"+i));
       }
       //设置最佳位置
       frame.pack();
       frame.setVisible(true);
    }
}

2.BorderLayout边框布局

import java.awt.*;

//设置一个BorderLayout布局管理器
public class awtDemo4 {
    public static void main(String[] args) {
        Frame frame=new Frame();
        frame.setLayout(new BorderLayout());
        frame.add(new Button("北侧按钮"),BorderLayout.NORTH);
        frame.add(new Button("南侧按钮"),BorderLayout.SOUTH);
        frame.add(new Button("西侧按钮"),BorderLayout.WEST);
        frame.add(new Button("东侧按钮"),BorderLayout.EAST);
        frame.add(new Button("中间按钮"),BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);

    }
}

3. GridLayout网格布局

使用网格布局设计一个计算器界面

import java.awt.*;

//使用GridLayout布局管理器设置一个计算器界面
public class awtDemo1 {
    public static void main(String[] args) {
        Frame f=new Frame("计算器");
        //1.创建一个Panel容器
        Panel panel1=new Panel();
        //2.加入文本框
        panel1.add(new TextField(30));//设置能容纳30列
        //3.将第一个Panel容器放在window的北部  window窗口是默认使用BorderLayout
        f.add(panel1,BorderLayout.NORTH);
        //4.创建另一个Panel容器
        Panel panel2=new Panel();
        panel2.setLayout(new GridLayout(3,5,4,4));//行数,列数,垂直间距,水平间距
        for(int i=0;i<10;i++){
            panel2.add(new Button(i+""));//将int类型转换为字符串
        }
        panel2.add(new Button("+"));
        panel2.add(new Button("-"));
        panel2.add(new Button("*"));
        panel2.add(new Button("/"));
        panel2.add(new Button("."));

        //5.将第二个Panel容器放入windo窗口中   默认居中
       f.add(panel2);


        f.pack();
        f.setVisible(true);
    }
}

 

 4.CardLayout卡片布局

方法名称方法功能
CardLayout()创建默认的CardLayout布局管理器。
CardLayout(int hgap,int vgap)
 
通过指定卡片与容器左右边界的间距C hgap)、上下边界Cvgap)的间距来创

建CardLayout布局管理器
first(Container target)显示target容器中的第一张卡片.
last(Container target)显示target容器中的最后一张卡片.
previous(Container arget) 显示target容器中的前一张卡片.
next(Container target)显示target容器中的后一张卡片.
show(Containertaget,String name)显示target容器中指定名字的卡片.
//CardLayout
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class awtDemo2 {
    public static void main(String[] args) {
        Frame frame=new Frame("这里测试");

        //1.创建一个Panel
        Panel panel1=new Panel();
        //2.设置为CardLayout布局管理
        CardLayout cardLayout=new CardLayout();
        panel1.setLayout(cardLayout);
       //3.往Panel中加入多个组件
        String []names={"第一张","第二张","第三张","第四张","第五张",};
        for(int i=0;i< names.length;i++){
            panel1.add(names[i],new Button(names[i]));
        }
        //4.将这个Panel放在window中间
        frame.add(panel1);
        //5.创建另一个Panel用于存放多个按钮
        Panel panel2=new Panel();
        Button b1 = new Button("上一张");
        Button b2 = new Button("下一张");
        Button b3 = new Button("第一张");
        Button b4 = new Button("最后一张");
        Button b5 = new Button("第三张");

        //6.创建一个事件监听器用于响应这些按钮
        ActionListener actionListener=new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
              String name=e.getActionCommand();//得到每个按钮上的名字
                switch (name){
                    case "上一张":cardLayout.previous(panel1);
                        break;
                    case "下一张":cardLayout.next(panel1);
                        break;
                    case "第一张": cardLayout.first(panel1);
                        break;
                    case "最后一张":cardLayout.last(panel1);
                        break;
                    case "第三张":cardLayout.show(panel1,"第三张");
break;
                }
            }
        };
//7.把这个时间监听器和多个按钮绑定在一起
        b1.addActionListener(actionListener);
        b2.addActionListener(actionListener);
        b3.addActionListener(actionListener);
        b4.addActionListener(actionListener);
        b5.addActionListener(actionListener);
        //8.
        panel2.add(b1);
        panel2.add(b2);
        panel2.add(b3);
        panel2.add(b4);
        panel2.add(b5);
        //
     frame.add(panel2,BorderLayout.SOUTH);
     frame.pack();
     frame.setVisible(true);
    }
}

 5.BoxLayOut

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

public class awtDemo4 {
    public static void main(String[] args) {
        Frame frame=new Frame();
        //设置水平容器
        Box hb = Box.createHorizontalBox();
        hb.add(new Button("水平按钮1"));
       hb.add(Box.createHorizontalGlue());//设置一个可以拉伸的间距
        hb.add(new Button("水平按钮2"));
        hb.add(Box.createHorizontalStrut(30));//设置一个不可拉伸的
        hb.add(new Button("水平按钮3"));

        //设置一个垂直容器
        Box vb = Box.createVerticalBox();
        vb.add(new Button("垂直按钮1"));
        vb.add(Box.createVerticalGlue());//设置一个可以拉伸的间距
        vb.add(new Button("垂直按钮2"));
        vb.add(Box.createVerticalStrut(30));//不可拉伸的
        vb.add(new Button("垂直按钮3"));

        frame.add(hb,BorderLayout.NORTH);
        frame.add(vb);


        frame.pack();
        frame.setVisible(true);
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值