GUI编程02-布局管理器

流式布局 FlowLayout

东西南北中 BorderLayout

表格布局 GridLayout

流式布局

package YMP.GUI;
​
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
​
public class TestFlowLayout {
    public static void main(String[] args) {
        Frame frame=new Frame("TestFlowLayout");
​
        Button button1=new Button("btn1");
        Button button2=new Button("btn2");
        Button button3=new Button("btn3");
​
        frame.setLayout(new FlowLayout());
        frame.setSize(200,200);
        frame.setVisible(true);
​
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
​
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
​
    }
}
​

东西南北中

package YMP.GUI;
​
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
​
public class TestBorderLayout {
    public static void main(String[] args) {
        Frame frame=new Frame("TestBorderLayout");
        Button east=new Button("East");
        Button west=new Button("Wset");
        Button south=new Button("South");
        Button north=new Button("North");
        Button center=new Button("Center");
​
        frame.add(east,BorderLayout.EAST);
        frame.add(west,BorderLayout.WEST);
        frame.add(south,BorderLayout.SOUTH);
        frame.add(north,BorderLayout.NORTH);
        frame.add(center,BorderLayout.CENTER);
​
        frame.setSize(200,200);
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}
​

表格布局

package YMP.GUI;
​
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
​
public class TestGridLayout {
    public static void main(String[] args) {
        Frame frame=new Frame("TestGridLayout");
​
        frame.setLayout(new GridLayout(3,2));
​
        for(int i=0;i<6;i++){
            frame.add(new Button("bton"+(i+1)));
        }
​
        frame.setSize(400,400);
        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}
​

应用练习

设计出图片所示窗口

流程思路

1.frame顶级容器
2.4个panel,分别对应frame的上半,下半和图中橙黄两色块
3.蓝色部分为button
4.在橙黄色色块中用BorderLayout加入button

代码实现

package YMP.GUI;
​
import javax.swing.border.Border;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
​
public class ExDemo {
    public static void main(String[] args) {
        Frame frame=new Frame();
        frame.setSize(400,300);
        frame.setLayout(new GridLayout(2,1));
        frame.setVisible(true);
​
​
        Panel p1=new Panel();
        Panel p2=new Panel();
        Panel p3=new Panel();
        Panel p4=new Panel();
​
        frame.add(p1);
        frame.add(p2);
​
​
​
        Button button1=new Button("btn1");
        Button button2=new Button("btn2");
        Button button3=new Button("btn3");
        Button button4=new Button("btn4");
        Button button5=new Button("btn5");
        Button button6=new Button("btn6");
        Button button7=new Button("btn7");
        Button button8=new Button("btn8");
        Button button9=new Button("btn9");
        Button button10=new Button("btn10");
​
        p1.setLayout(new BorderLayout());
        p1.add(button2,BorderLayout.EAST);
        p1.add(button1,BorderLayout.WEST);
        p1.add(p3,BorderLayout.CENTER);
​
        p2.setLayout(new BorderLayout());
        p2.add(button3,BorderLayout.WEST);
        p2.add(button4,BorderLayout.EAST);
        p2.add(p4, BorderLayout.CENTER);
​
        p3.setLayout(new GridLayout(2,1));
        p3.add(button5);
        p3.add(button6);
​
        p4.setLayout(new GridLayout(2,2));
        p4.add(button7);
        p4.add(button8);
        p4.add(button9);
        p4.add(button10);
​
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}
​

结果展示

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值