GUI编程-01

组件

  • 窗口

  • 弹窗

  • 面板

  • 文本框

  • 列表框

  • 按钮

  • 图片

  • 监听事件

  • 鼠标

  • 键盘事件

  • 破解工具

Java提供了丰富的图形用户界面(Graphics User Interface,GUI)的类库,基于这些类库可以编写窗口程序。

Java关于图形界面的类库主要放在Swing和AWT包下。

AWT

AWT组件也被称为重组件,因为针对不同的运行平台,AWT组件会调用特定平台组件。

AWT是一个抽象窗口类。

1.包含了很多类和接口

2.元素:窗口,按钮,文本框

3.java.awt包

组件和容器

复制代码
package YMP.GUI;
​
import java.awt.*;
​
public class TestFrame {
    public static void main(String[] args) {
        Frame frame=new Frame("第一个Java图形界面窗口");
​
        //设置可见性
        frame.setVisible(true);
        //设置窗口大小
        frame.setSize(400,400);
        //设置背景颜色
        frame.setBackground(Color.BLACK);
        //弹出的初始位置
        frame.setLocation(200,200);
        //设置大小固定,不可拉伸
        frame.setResizable(false);
    }
}
​

多个窗口

复制代码
package YMP.GUI;
​
import java.awt.*;
​
class MyFrame extends Frame {
​
​
    public MyFrame(int x,int y,int w,int h,Color color){
        setVisible(true);
        setBounds(x,y,w,h);
        setBackground(color);
    }
}
复制代码
package YMP.GUI;
​
import java.awt.*;
​
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);
    }
}
​

面板Panel

可以看成是一个空间,但不能单独存在

复制代码
package YMP.GUI;
​
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
​
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(40,161,35));
        //设置Panel相对与frame的坐标
        panel.setBounds(50,50,400,400);
        panel.setBackground(new Color(193,15,60));
​
        frame.add(panel);
        frame.setVisible(true);
​
        //监听事件,监听窗口关闭事件
        frame.addWindowListener(new WindowListener() {
​
​
            @Override
            public void windowOpened(WindowEvent e) {
​
            }
​
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
​
            @Override
            public void windowClosed(WindowEvent e) {
​
            }
​
            @Override
            public void windowIconified(WindowEvent e) {
​
            }
​
            @Override
            public void windowDeiconified(WindowEvent e) {
​
            }
​
            @Override
            public void windowActivated(WindowEvent e) {
​
            }
​
            @Override
            public void windowDeactivated(WindowEvent e) {
​
            }
​
​
        });
    }
}
​
相关推荐
不爱吃糖的程序媛10 小时前
Flutter 与 OpenHarmony 通信:Flutter Channel 使用指南
前端·javascript·flutter
利刃大大10 小时前
【Vue】Element-Plus快速入门 && Form && Card && Table && Tree && Dialog && Menu
前端·javascript·vue.js·element-plus
NEXT0611 小时前
AI 应用工程化实战:使用 LangChain.js 编排 DeepSeek 复杂工作流
前端·javascript·langchain
念风零壹11 小时前
AI 时代的前端技术:从系统编程到 JavaScript/TypeScript
前端·ai
代码游侠11 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
2301_7634724611 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
光影少年11 小时前
react的hooks防抖和节流是怎样做的
前端·javascript·react.js
小毛驴85011 小时前
Vue 路由示例
前端·javascript·vue.js
qq_124987075312 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_12 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端