GUI编程 (狂神学习笔记)2021-10-8

2024-05-30 05:08

本文主要是介绍GUI编程 (狂神学习笔记)2021-10-8,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GUI 编程


告诉大家该怎么学?

  • 这是什么?
  • 它怎么玩
  • 该如何去在我们平时运用?
  • class-可阅读的

组件

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

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.2.1 Frame
package com.tree.lesson01;
import java.awt.*;
/*** GUI 的第一个界面*/
public class TestFrame {public static void main(String[] args) {Frame frame = new Frame("我的java程序");//设置窗口大小frame.setSize(400,400);// 设置窗口位置frame.setLocation(200,200);//设置背景颜色frame.setBackground(Color.gray);//设置可见性frame.setVisible(true);//设置窗口拉伸frame.setResizable(false);}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GhtqF6b2-1633706763750)(GUI编程.assets/2325334-20210317161930105-314930371.png)]

/*** 创建多个窗口*/
public class TestFrame2 {public static void main(String[] args) {MyFrame myFrame1 = new MyFrame(100,100,200,200,Color.red);MyFrame myFrame2 = new MyFrame(300,100,200,200,Color.yellow);MyFrame myFrame3 = new MyFrame(100,300,200,200,Color.blue);MyFrame myFrame4 = new MyFrame(300,300,200,200,Color.green);}
}
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);}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rAg1aiIO-1633706763754)(GUI编程.assets/2325334-20210317161947465-1768301913.png)]

1.2.2. Panel(面板)
public class TestPanel {public static void main(String[] args) {Frame frame = new Frame();Panel panel = new Panel();//对窗口设置布局、可见性frame.setLayout(null);frame.setVisible(true);//窗口的坐标frame.setBounds(100,100,400,400);frame.setBackground(Color.red);//相对于frame的面板坐标panel.setBounds(50,50,300,300);panel.setBackground(Color.yellow);//将面板添加到窗口frame.add(panel);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wq5jgLHK-1633706763764)(GUI编程.assets/2325334-20210317162003068-2097307029.png)]

2.3 布局管理器

  • 流式布局
public class TestFlowLayout {  //流式布局public static void main(String[] args) {Frame frame = new Frame();frame.setVisible(true);Button button1 = new Button("button1");Button button2 = new Button("button2");Button button3 = new Button("button3");Button button4 = new Button("button4");frame.setLayout(new FlowLayout(FlowLayout.LEFT));frame.setSize(300,200);frame.add(button1);frame.add(button2);frame.add(button3);frame.add(button4);}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XwQRgazw-1633706763769)(GUI编程.assets/2325334-20210317162013759-127782931.png)]

  • 东西南北中
public class TestBorderLayout {public static void main(String[] args) {Frame frame = new Frame();frame.setVisible(true);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.setSize(300,200);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);}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U3A4UHWT-1633706763773)(GUI编程.assets/2325334-20210317162025494-1657290476.png)]

  • 表格布局
public class TestGridLayout {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");Button button4 = new Button("button4");Button button5 = new Button("button5");Button button6 = new Button("button6");//设置表格布局 3*2frame.setLayout(new GridLayout(3,2));frame.add(button1);frame.add(button2);frame.add(button3);frame.add(button4);frame.add(button5);frame.add(button6);frame.setVisible(true);//将表格自动填充于窗口frame.pack();}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L8ZoyI4B-1633706763777)(GUI编程.assets/2325334-20210317162037528-294596330.png)]

课堂练习

/*** 坐标定位  布局法*/
public class TestHomeWork {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");Button button4 = new Button("button4");Button button5 = new Button("button5");Button button6 = new Button("button6");Button button7 = new Button("button7");Button button8 = new Button("button8");Button button9 = new Button("button9");Button button10 = new Button("button10");button1.setBounds(0,0,100,200);frame.add(button1);button2.setBounds(100,0,400,100);frame.add(button2);button3.setBounds(100,100,400,100);frame.add(button3);button4.setBounds(500,0,100,200);frame.add(<

这篇关于GUI编程 (狂神学习笔记)2021-10-8的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015652

相关文章

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和