01 GUI编程概述

GUI编程

如何学?

  • 这是什么?

    • 图形界面编程
  • 它怎么玩?

  • 该如何去在我们平时运用?

组件:

  • 窗口
  • 弹窗
  • 面板
  • 文本框
  • 列表框
  • 按钮
  • 图片
  • 监听事件
  • 鼠标
  • 键盘事件
  • 破解工具

1、简介

Gui的核心技术:Swing AWT ,

  1. 因为界面不美观。
  2. 需要jre环境!

为什么要学习

  1. 可以写出自己心中的一些小工具
  2. 工作时候,也可能需要维护到swing界面,概率极小!
  3. 了解MVC架构,了解监听!

2、AWT

2-1、 AWT介绍

  1. 包含类很多的类和接口! GUI:图形用户界面编程
  2. 元素:窗口,按钮,文本框
  3. java.awt

2-2、组件和容器

1、弹窗
package com.liudr.lesson01;

import java.awt.*;
//GUI的第一个界面
public class TestFream {
    public static void main(String[] args) {
        //Frame
        Frame frame = new Frame("我的第一个Java图像窗口");

        //需要设置可见性
        frame.setVisible(true);

        //需要设置窗口的大小
        frame.setSize(400,400);

        //设置窗口的背景颜色 Coler
        Color color = new Color(85, 150, 68);
        frame.setBackground(color);

        //弹出的初始位置
        frame.setLocation(200,200);

        //设置大小固定
        frame.setResizable(false);
        
    }
}

question:发现窗口为无法点“X”关闭窗口

解决:点击程序结束按钮

2、面板Panel
  • Panel 可以看成一个空间,但是不能单独存在,可以放在Frame上。
  • 解决了关闭问题
package com.liudr.lesson01;

import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

//Panel 可以看成一个空间,但是不能单独存在,可以放在Frame上
public class Test03Panel {
    public static void main(String[] args) {
        Frame frame = new Frame();
        //布局的概念
        Panel panel = new Panel();

        //设置布局
        frame.setLayout(null);

        //坐标
        frame.setBounds(300,300,500,500);
        frame.setBackground(new Color(62, 226, 35));

        //panel设置坐标,相对于frame
        panel.setBounds(50,50,400,400);
        panel.setBackground(new Color(77, 139, 189));

        //frame.add(panel)
        frame.add(panel);

        //设置可见性
        frame.setVisible(true);

        //监听事件,监听窗口关闭事件
        //适配器模式:
        frame.addWindowListener(new WindowAdapter() {
            //窗口关闭是要做的事情
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    }
}
面板样式
3、布局管理器
  • 流式布局(从左到右)(FlowLayout)

    package com.liudr.lesson01;
    
    import java.awt.*;
    
    public class Test04LowLayout {
        public static void main(String[] args) {
            Frame frame = new Frame();
    
            //组件-按钮
            Button button1 = new Button("button1");
            Button button2 = new Button("button2");
            Button button3 = new Button("button3");
    
            //设置为流式布局
            //frame.setLayout(new FlowLayout());//默认中间
            frame.setLayout(new FlowLayout(FlowLayout.LEFT));
    
            //把按钮添加上去
            frame.add(button1);
            frame.add(button2);
            frame.add(button3);
    
            frame.setSize(200,200);
            frame.setVisible(true);
    
    
    
    
        }
    }
    
  • 东西南北中(BorderLayout)

    package com.liudr.lesson01;
    
    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    //东西南北中布局
    public class Test05BorderLayout {
        public static void main(String[] args) {
            Frame frame = new Frame();
    
            Button east = new Button("east");
            Button west = new Button("west");
            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.setBounds(200,200,200,200);
    
            //监听事件,窗口关闭事件
            frame.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
    
            frame.setVisible(true);
        }
    }
    
  • 表格式布局(GridLayout)

    package com.liudr.lesson01;
    
    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    public class Test06GridLayout {
        public static void main(String[] args) {
            Frame frame = new Frame();
    
            Button btn1 = new Button("btn1");
            Button btn2 = new Button("btn2");
            Button btn3 = new Button("btn3");
            Button btn4 = new Button("btn4");
            Button btn5 = new Button("btn5");
            Button btn6 = new Button("btn6");
    
            frame.setLayout(new GridLayout(3,2));
    
            frame.add(btn1);
            frame.add(btn2);
            frame.add(btn3);
            frame.add(btn4);
            frame.add(btn5);
            frame.add(btn6);
    
            frame.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
    
            frame.pack();//Java函数,可以自动调整布局
            frame.setVisible(true);
    
    
        }
    }
    

续写-

posted on 2020-10-18 13:23  dulling缘  阅读(23)  评论(0)    收藏  举报

导航