GUI编程学习笔记

本文介绍了JavaGUI编程的基础,包括使用AWT创建第一个Frame窗口,实现多个窗口和Panel,以及探索三种布局管理器(流式布局、东西南北中布局和表格式布局)。同时涵盖了事件监听,如窗口、鼠标和键盘事件,以及Swing中的高级组件如JFrame和JDialog等。
摘要由CSDN通过智能技术生成

GUI编程

视频地址

简介

组件:

  • 窗口、弹窗、面板、文本框、列表框、按钮、图片

  • 监听事件、鼠标、键盘、破解工具

  • GUI核心技术:Swing、AWT

AWT介绍

抽象的窗口工具,包含了很多类和接口

元素:窗口、按钮、文本框

java.awt

第一个Frame窗口

组件和容器

//关闭JAVA程序运行即可关闭窗口
import java.awt.*;
//GUI的第一个界面
public class TestFrame {
    public static void main(String[] args) {
        //Frame,JDK
        Frame frame = new Frame("我的第一个JAVA图像界面窗口");
        //设置可见性
        frame.setVisible(true);
        //设置窗口大小
        frame.setSize(400,400);
        //设置背景颜色
        frame.setBackground(new Color(255,1,1));
        //弹出的初始位置
        frame.setLocation(200,200);
        //设置窗口大小固定
        frame.setResizable(false);
    }
}

 

多个窗口

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.red);
    MyFrame myFrame3 = new MyFrame(100,300,200,200,Color.yellow);
    }
}
​
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);
    }
​
}

 

Panel面板讲解

解决了关闭事件

import java.awt.*;
import java.awt.event.WindowAdapter;
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(20,161,35));
        //Panel设置坐标,相对于frame
        panel.setBounds(50,50,400,400);
        panel.setBackground(new Color(193,15,60));
​
        //frame.add()
        frame.add(panel);
        frame.setVisible(true);
​
        //监听事件,关闭窗口
        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭的时候结束程序
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

  

3种布局管理器

流式布局

东西南北中

表格式布局

流式布局
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();
        //组件-按钮
        Button button1 = new Button("button1");
        Button button2 = new Button("button1");
        Button button3 = new Button("button1");
​
        //设置为流式布局
        frame.setLayout(new FlowLayout());//居中
        /*靠左
          frame.setLayout(new FlowLayout(FlowLayout.LEFT));*/
        frame.setSize(200,200);
        //添加按钮
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
​
        frame.setVisible(true);
        //监听事件,关闭窗口
        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭的时候结束程序
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

  

东西南北中

表格式布局

事件监听

输入框事件监听

简易计算器、回顾组合内部类

画笔Paint

鼠标监听时间、模拟画图工具

窗口监听事件

键盘监听事件

Swing之JFrame窗体

JDialog弹窗

Icon、Imagelcon标签

文本域JScroll面板

图片按钮、单选框、多选框

下拉框、列表框

文本框、密码框、文本域

###

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值