GUI-study-class01

1.

import java.awt.*;

//GUi的第一个界面
public class TextFrame {
     public static void main(String[] args) {
         //frame类
         Frame frame = new Frame("我的第一个图像窗口");
         //需要设置可见性、
         frame.setVisible(true);
         //设置窗口大小
         frame.setSize(400,400);
         //设置背景颜色
         frame.setBackground(new Color(95,13,92));
         //设置位置
         frame.setLocation(200,200);
         //设置窗口大小是否固定
         frame.setResizable(false);

2.多个窗口,先对代码进行封装

import java.awt.*;

public class TextFrame02 {
    public static void main(String[] args) {
        //设置多个窗口
        MyFrame myFrame01 = new MyFrame(100, 100, 100, 100, Color.BLUE);
        MyFrame myFrame02 = new MyFrame(100, 200, 100, 100, Color.red);
        MyFrame myFrame03 = new MyFrame(250, 100, 100, 100, Color.green);

        myFrame01.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });




    }
}

//代码的封装
class MyFrame extends Frame{
    static int id=1;
    public MyFrame(int x ,int y ,int w , int h ,Color color ){
        super("我的第"+(id++)+"个窗口");
        setBackground(color);
        setBounds(x,y,w,h);
        setVisible(true);
    }


}

 3.面板(panel)

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TextPanel {
    public static void main(String[] args) {
        Panel panel = new Panel();
        Frame frame = new Frame("1");
        //布局
        frame.setLayout(null);
        //坐标
        frame.setBounds(200,200,500,500);
        frame.setBackground(Color.red);

        panel.setBounds(50,50,100,100);
        panel.setBackground(Color.green);

        frame.setVisible(true);

        frame.add(panel);

        //添加监听事件
        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭是做的事情
            public void windowClosing(WindowEvent e) {
                //关闭窗口
                System.exit(0);
            }
        });





    }
}

4.三种布局

4.1表格布局(GridLayout)

以表格形式布局


import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TextFridLayout {
    public static void main(String[] args) {
        Frame frame = new Frame();

        Button button01 = new Button("001");
        Button button02 = new Button("002");
        Button button03 = new Button("003");
        Button button04 = new Button("004");
        Button button05 = new Button("005");
        Button button06 = new Button("006");
        
        //表格布局
        frame.setLayout(new GridLayout(3,2));
        //设置上可见性
        frame.setVisible(true);
        //设置窗口位置大小
        frame.setBounds(200,200,500,500);


        frame.add(button01);
        frame.add(button02);
        frame.add(button03);
        frame.add(button04);
        frame.add(button05);
        frame.add(button06);




        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

 4.2流式布局(FlowLayout)

先铺满第一行,在接着往下铺满



import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TextFlowLayout {
    public static void main(String[] args) {

        Frame frame = new Frame();

        //组件--按钮
        Button button01 = new Button("001");
        Button button02 = new Button("002");
        Button button03 = new Button("003");

        //流式布局
         frame.setLayout(new FlowLayout());
         frame.setVisible(true);
         frame.setBounds(200,200,500,500);
         frame.add(button01);
         frame.add(button02);
         frame.add(button03);







         frame.addWindowListener(new WindowAdapter() {
             @Override
             public void windowClosing(WindowEvent e) {
                 System.exit(0);
             }
         });

    }
}

 4.3 东南西北中布局

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TextBorderLayout {
    public static void main(String[] args) {

        Frame frame = new Frame();

        Button east = new Button("east");
        Button west = new Button("west");
        Button sorth = new Button("sorth");
        Button north = new Button("north");
        Button center = new Button("center");

        frame.setVisible(true);
        frame.setBounds(200,200,500,500);

        frame.add(east,BorderLayout.EAST);
        frame.add(west,BorderLayout.WEST);
        frame.add(sorth,BorderLayout.SOUTH);
        frame.add(north,BorderLayout.NORTH);
        frame.add(center,BorderLayout.CENTER);




        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });


    }
}

总结

  1. Frame是一个顶级窗口

  2. Panel无法单独显示,必须加到某个容器中

  3. 布局管理器:

    • 流式
    • 东西南北中
    • 表格
  4. 大小,定位,颜色,监听器,可见性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值