• GUI编程


    一、GUI编程简介

    • GUI编程(Graphical User Interface),即用户图形界面编程。
    • GUI淘汰原因:界面不够美观,需要jre环境。
    • 学习GUI的好处:1. 为后期学习MVC架构打好基础;2. 了解监听;3. 工作时可能需要维护到Swing界面(概率极小)。
    • GUI的基本组件:窗口、弹窗、面板、文本框、列表框、按钮、图片、交互组件、监听事件、鼠标事件、键盘事件。
    • GUI的核心:AWT和Swing。

    二、AWT

    1. Awt介绍

    AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界面的组件,如窗口、按钮、文本框、对话框等。在JDK中针对每个组件都提供了对应的java类,这些类都位于java.awt包中。

    2. 组件和容器

    Component类通常被称为组件,根据Component的不同作用,可将其分为基本组件类和容器类。基本组件类是诸如按钮、文本框之类的图形界面元素,而容器类则是通过Component的子类Container类表示容器,它是一种特殊的组件,可以用来容纳其他组件。
    在这里插入图片描述

    2.1 Frame


    第一个Frame窗口

    //GUI的第一个界面
    public class TestFrame {
        public static void main(String[] args) {
            
            //Frame对象
            Frame frame = new Frame("我的第一个Java图形界面窗口");
    
            //需要设置可见性
            frame.setVisible(true);
    
            //设置窗口大小
            frame.setSize(400, 400);
    
            //设置背景颜色  Color类
    //        frame.setBackground(Color.black); //方式一
            frame.setBackground(new Color(0, 64, 255)); //方式二
    
            //弹出的初始位置
            frame.setLocation(200, 200);
    
            //设置大小固定
            frame.setResizable(false);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    在这里插入图片描述 问题:发现窗口关闭不掉,只能停止Java程序。

    多个弹窗(回顾封装)

    public class TestFrame2 {
        public static void main(String[] args) {
            //显示多个窗口
            MyFrame myFrame1 = new MyFrame(100, 100, 200, 200, Color.blue);
            MyFrame myFrame2 = new MyFrame(300, 100, 200, 200, Color.yellow);
            MyFrame myFrame3 = new MyFrame(100, 300, 200, 200, Color.red);
            MyFrame myFrame4 = new MyFrame(300, 300, 200, 200, Color.magenta);
        }
    }
    
    class MyFrame extends Frame {
    
        static int id = 0; //可能存在多个窗口,我们需要一个计数器
    
        public MyFrame(int x, int y, int w, int h, Color color) {
            super("MyFrame" + (++id));
    
            setBackground(color);
            setBounds(x, y, w, h);
            setVisible(true);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    2.2 Panel(面板)

    解决了关闭事件。

    //Panel 可以看作是一个空间,但是不能单独存在
    public class TestPanel {
        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(16, 217, 47));
    
            //Panel设置坐标,相对于frame
            panel.setBounds(50, 50, 400, 400);
            panel.setBackground(new Color(226, 11, 11));
    
            //frame.add(panel)
            frame.add(panel);
    
            frame.setVisible(true);
    
            //监听事件,监听窗口关闭事件  system.exit(0)
            //适配器模式:
            frame.addWindowListener(new WindowAdapter() {
                //窗口点击关闭的时候需要做的事情
                @Override
                public void windowClosing(WindowEvent e) {
                    //结束程序
                    System.exit(0);
                }
            });
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    在这里插入图片描述

  • 相关阅读:
    ChinaSoft 论坛巡礼|开源软件供应链论坛
    Python实现ABC人工蜂群优化算法优化支持向量机分类模型(SVC算法)项目实战
    605.种花问题
    Hazelcast系列(一):初识hazelcast
    WPS如何共享文件和文件夹
    【CMU15-445 Part-14】Query Planning & Optimization I
    2023前端大厂高频面试题之JavaScript篇(5)
    基于ChatGPT+词向量/词嵌入实现相似商品推荐系统
    FL Studio 2023中文安装设置指南!四招教你玩转FL Studio21!
    深度学习与计算机视觉教程(15) | 视觉模型可视化与可解释性(CV通关指南·完结)
  • 原文地址:https://blog.csdn.net/m0_61467488/article/details/126335985