当前位置: 首页 > news >正文

GUI编程

GUI编程

【Java从0到架构师课程】笔记

GUI简介

GUI:图形用户界面,在计算机中采用图形的方式显示用户界面

java的GUI开发

  • AWT:java最早推出的GUI编程开发包,界面风格跟随操作系统
  • SWT:eclipse就是java使用SWT开发的
  • Swing:在AWT的基础上扩充了功能,可以在不同操作系统重保持统一风格
  • JavaFx:Java官方推出的新一代GUI编程开发包

第一个Swing窗口

java可以写用户界面,本质就是调用各种写好了的API

package swing;import javax.swing.*;public class Main {public static void main(String[] args) {//其实本质就是调用APIJFrame frame = new JFrame("我是一个窗口");frame.setBounds(300, 300, 400, 400);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}
}

在这里插入图片描述

Swing的常用组件

在这里插入图片描述
在这里插入图片描述
编写MyFram

package swing;import javax.swing.*;
import java.awt.*;public class MyFrame extends JFrame {public MyFrame(){super("简单的计算窗口");//其实本质就是调用APIsetBounds(300, 300, 400, 400);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 从左到右水平排列setLayout(new FlowLayout(FlowLayout.LEFT, 20, 20));Font font = new Font("微软雅黑", Font.PLAIN, 18);// 文本输入框JTextField tf1 = new JTextField(5);tf1.setFont(font);add(tf1);//文本标签JLabel addLabel = new JLabel("+");addLabel.setFont(font);add(addLabel);// 文本输入框JTextField tf2 = new JTextField(5);tf1.setFont(font);add(tf2);//文本标签JLabel equalLabel = new JLabel("=");addLabel.setFont(font);add(equalLabel);//文本标签JLabel resultLabel = new JLabel("?");resultLabel.setFont(font);add(resultLabel);// 按钮JButton btn = new JButton("计算");btn.setFont(font);//点击按钮,设置监听btn.addActionListener((evt) ->{try { //异常机制:防止不合理的输出导致程序崩溃的问题int n1 = Integer.parseInt(tf1.getText());int n2 = Integer.parseInt(tf2.getText());resultLabel.setText(n1 + n2 + "");} catch (Exception e){int w = 300;int h = 100;int x = getX() + (getWidth() + w) >> 1;int y = getY() + (getHeight() + h) >> 1;JDialog dialog = new JDialog(this, true); // modal窗口的概念,弹出子窗口,父窗口不能再点击dialog.setTitle("警告");dialog.setBounds(x, y, w, h);dialog.setResizable(false); //不能改变大小JLabel label = new JLabel("请输入正确格式的整数");label.setFont(font);dialog.add(label);dialog.setVisible(true);}});add(btn);}
}

Main中创建MyFram对象,并执行显示方法

package swing;import javax.swing.*;
import java.awt.*;public class Main {public static void main(String[] args) {MyFrame myFrame = new MyFrame();myFrame.setVisible(true);}
}

效果展示

输入合法数据可以进行计算
在这里插入图片描述
输入不合法数字,按钮进行监听,给出警告,此外还有一些细节,弹出警告框之后,不能再点击父窗口,警告窗口不能改变大小
在这里插入图片描述

java程序的运行过程

在这里插入图片描述

.class文件

在这里插入图片描述

JAR

JAR ,全称Java Archive,使用ZIP文件格式来打包

将自己的代码分享给他人

  • 直接分享.java文件,注意文件第一行导包路径问题(开源)
  • 将相关的.class文件打包成一个.jar文件(其实就是一个压缩包)后分享出去(不开源)
  • 可以对JAR包进行数字前面,防止内容被恶意篡改

idea中jar包的导出与导入

java导出jar包的步骤(本质是调用了JDK bin目录中的jar.exe)
File->Project Structure->artifacts->点击“+”按钮->JAR->“From modules with dependence”
在这里插入图片描述
然后点击OK

在这里插入图片描述

runable_jar

在Swing组件中写的计算器功能程序,现在想将其变成一个可执行文件,用户点击之后,就可以直接使用

相关文章:

GUI编程

GUI编程 【Java从0到架构师课程】笔记 GUI简介 GUI:图形用户界面,在计算机中采用图形的方式显示用户界面 java的GUI开发 AWT:java最早推出的GUI编程开发包,界面风格跟随操作系统SWT:eclipse就是java使用SWT开发的Sw…...

(multi)map和set--C++

文章目录 一、序列式容器和关联式容器二、set系列的使用1、set和multiset参考文档2、set类的介绍3、set的构造和迭代器4、set的增删查5、insert和迭代器遍历使用样例:6、find和erase使用样例:7、multiset和set的差异 三、map系列的使用1、map和multimap参…...

jmeter响应断言放进csv文件遇到的问题

用Jmeter的json 断言去测试http请求响应结果,发现遇到中文时出现乱码,导致无法正常进行响应断言,很影响工作。于是,察看了其他测试人员的解决方案,发现是jmeter本身对编码格式的设置导致了这一问题。解决方案是在jmete…...

复旦大学全球供应链研究中心揭牌,合合信息共话大数据赋能

10月13日,复旦大学全球供应链研究中心(以下简称“中心”)揭牌仪式在复旦大学管理学院政立院区隆重举行。我国的供应链体系庞大复杂,在百年未有之大变局下,保障产业链供应链安全已成为我国的重要战略目标。中心的设立旨…...

达那福发布新品音致系列:以顶尖降噪技术,开启清晰聆听新篇章

近日,国际知名助听器品牌达那福推出其最新研发的音致系列助听器。该系列产品旨在通过顶尖的声音处理技术,直面助听器市场中普遍存在的挑战——如何在噪声环境中提供清晰的语音辨识。 根据助听器行业协会2022年的调查数据,高达86%的佩戴者认为…...

当物理学奖遇上机器学习:创新融合的里程碑

作为一名程序员,看到 2024 年诺贝尔物理学奖颁发给机器学习与神经网络领域研究者,心中满是感慨与思考。 从编程技术角度出发,这意味着传统编程理念与物理思维有了更紧密的结合。在以往的编程中,算法优化多侧重于数据结构和计算效率…...

模拟电路2

BJT双极性晶体管 1.1 BJT共射特性曲线 输入特性: iB f(uBE)|UceC 定量分析,确定只有一个变量 输出特性 放大区:发射结正偏,集电结反偏 截至区:双结反偏 CE断路 饱和区:双结正偏 UCEs0.3 CE类似于开关闭…...

大数据面试题整理——MapReduce

系列文章目录 第一章 HDFS面试题 第二章 MapReduce面试题 文章目录 系列文章目录一、请简要解释一下 MapReduce 的工作原理。二、什么是 map 函数和 reduce 函数?它们的作用分别是什么?三、如何处理数据倾斜问题在 MapReduce 中?四、在 MapR…...

【景观生态学实验】实验一 ArcGIS地理数据处理及制图基础

实验目的 1.掌握ArcGIS软件基本操作:通过实验操作与学习,熟练掌握ArcGIS软件相关的基本操作,包括界面熟悉、工具栏使用、数据的加载和保存、基本数据处理操作等; 2.掌握如何使用ArcGIS进行影像拼接及裁剪:通过实验操作与学习&am…...

今年双十一最值得入手的好物有哪些?双十一值得选购的好物盘点!

在这个全民狂欢的购物盛宴——双十一,每一个角落都弥漫着诱人的优惠与不可错过的精品。从科技潮品到生活必需品,从时尚尖货到家居好物,无数精选商品在这一季集中绽放,等待着慧眼识珠的你将它们带回家,今年的双十一&…...

【OpenCV】人脸识别方法

代码已上传GitHub:plumqm/OpenCV-Projects at master EigenFace、FisherFace、LBPHFace 这三种方法的代码区别不大所以就一段代码示例。 EigenFace与FisherFace 1. 将人脸图像展开为一维向量,组成训练数据集 2. PCA(EigenFace)或…...

xxl-job定时任务

学习中心 清理Redis中的历史榜单: 持久化榜单数据: 创建历史榜单表: 支付服务 待退款订单检查: 未支付订单检查: 交易服务 退款单处理: 促销中心 优惠券发放状态处理:...

C#从零开始学习(如何构建应用)(1)

开始使用 C# 本章所有的代码都放在 https://github.com/hikinazimi/head-first-Csharp 创建一个控制台应用 打开Visual Studio 2019 创建项目 选择控制台应用程序 创建后点击运行,就可以在控制台打印Hello World 构建一个游戏(创建WPF项目) 构建游戏的步骤 首先创建WPF项…...

OpenCV高级图形用户界面(7)获取指定窗口的属性值函数getWindowProperty()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 提供窗口的参数。 函数 getWindowProperty 返回窗口的属性。 cv::getWindowProperty() 函数用于获取指定窗口的属性值。这个函数允许你查询窗口…...

Java实现文件上传功能

目录 1、准备工作 2、注意事项 3、jsp页面代码 4、Servlet 5、注册Servlet 1、准备工作 导入依赖:commons-fileupload和commons-io 2、注意事项 ①为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如WEB-INF目录下 ②为…...

Leetcode|24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II

24. 注意:涉及头节点的修改或者删除时,最好设置一个虚拟的头结点,方便简化代码,不必进行是否为头节点的的判断,简化code class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode* dummyHead new Li…...

OpenCV学习笔记5——图像的数值计算

目录 一、简单数值计算 二、opencv中提供函数进行计算 三、cv2.addWeighted 一、简单数值计算 在opencv中,我们有许多可以获取图像各类数值的办法,许多函数能获得各种方面的数据。但如果我们什么都不用,仅仅对图像上每一个点做加法运算会…...

P3137 [USACO16FEB] Circular Barn S

P3137 [USACO16FEB] Circular Barn S 思路&#xff1a;数据范围为O(n^2)那么因此我们可以暴力&#xff0c;那么如何进行构造呢&#xff1f;首先假设一头奶牛在a&#xff0c;一头在b&#xff0c;如果要使一个到b&#xff0c;另一个到c&#xff0c;&#xff08;a<b<c)&…...

yocto编辑软件包-devtool的使用方法

之前用了很多次devtool&#xff0c;总是忘记用法&#xff0c;故此记录一下。 假设你有一个软件包名叫foo&#xff0c;并且已经下载编译过&#xff0c;需要修改它的源码并生成patch 生成修改工作区 devtool modify foo modify命令会将foo的源码压缩包解压到build/workspace/so…...

51单片机快速入门之 串行通信 2024/10/21

51单片机快速入门之 串行通信 并行通信: 好处:传输快 适合短距离通信弊端:占用大量io 接线形式为8对8 串行通信 异步通信: 数据一帧一帧传送,传输完一帧之后,可继续或者等待(等待时为高电平) 其帧细分为(图片来源) 起始位:数据帧开始,一定为 0 外部设备只有接受到 0 之后…...

大厂真实高频的 LLM 大模型面试 36 题例题详解

一、基础原理篇(8 题) 1. 什么是 Transformer?核心结构是什么? 答:Transformer 是基于自注意力机制的 seq2seq 模型,完全替代 RNN 结构。核心结构: Encoder(编码)+ Decoder(解码) 多头注意力(Multi-Head Attention) 前馈网络 FFN 层归一化、残差连接举例:GPT 只…...

前端小游戏实战:用JavaScript给爱心粒子添加点击互动效果

前端小游戏实战&#xff1a;用JavaScript给爱心粒子添加点击互动效果 当静态的爱心粒子在屏幕上跳动时&#xff0c;你是否想过让它对你的每一次点击做出回应&#xff1f;本文将带你从零开始&#xff0c;用JavaScript为爱心粒子系统添加点击生成、拖拽交互等动态效果&#xff0c…...

不止System.Memory!OpenCVSharp依赖的这几个DLL报错,一个方法全搞定

深度解析OpenCVSharp依赖冲突&#xff1a;从System.Memory到通用解决方案 当你兴致勃勃地准备运行一个基于OpenCVSharp的计算机视觉项目时&#xff0c;突然弹出的"DLL加载失败"或"版本不匹配"错误信息就像一盆冷水浇灭了热情。System.Memory只是众多潜在问…...

3步解锁加密音乐:ncmdumpGUI技术解析与实战指南

3步解锁加密音乐&#xff1a;ncmdumpGUI技术解析与实战指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI ncmdumpGUI是一款专为网易云音乐用户设计的NCM文件…...

告别手动转换!用Python自动化处理CSV到Little_R的完整指南

告别手动转换&#xff01;用Python自动化处理CSV到Little_R的完整指南 在数据科学和机器学习领域&#xff0c;数据格式转换是一项频繁且耗时的任务。特别是当我们需要将常见的CSV格式转换为特定领域专用的Little_R格式时&#xff0c;手动操作不仅效率低下&#xff0c;还容易出错…...

网安实验干货每日分享(Weevely配置使用)

网安实验干货每日分享&#xff08;Weevely配置使用&#xff09;-1031 渗透测试环境搭建与工具使用-Weevely配置使用 实验目的 熟悉Webshell管理工具Weevely的配置使用。 实验环境 操作机&#xff1a;Kali2018-TS &#xff08;1&#xff09;操作系统&#xff1a;Kali Linu…...

Qwen3.5-9B教程:Gradio队列机制+并发请求限流配置方法

Qwen3.5-9B教程&#xff1a;Gradio队列机制并发请求限流配置方法 1. 模型概述与环境准备 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;具备强大的逻辑推理、代码生成和多轮对话能力。其多模态变体Qwen3.5-9B-VL支持图文输入&#xff0c;并能处理长达128K token…...

RX9 vs RX7:哪个更适合你的AU音频修复工作流?实测对比与安装教程

RX9 vs RX7&#xff1a;专业音频修复工具深度评测与实战指南 在数字音频处理领域&#xff0c;iZotope RX系列一直是音频修复的金标准。当最新版RX9与经典版RX7同时出现在插件列表中&#xff0c;专业音频工程师们常常面临选择困境——是升级到功能更强大的新版本&#xff0c;还是…...

颠覆体验:Mac鼠标滚动优化完全指南——从卡顿到丝滑的蜕变之路

颠覆体验&#xff1a;Mac鼠标滚动优化完全指南——从卡顿到丝滑的蜕变之路 【免费下载链接】Mos 一个用于在 macOS 上平滑你的鼠标滚动效果或单独设置滚动方向的小工具, 让你的滚轮爽如触控板 | A lightweight tool used to smooth scrolling and set scroll direction indepen…...

家长选择赶考状元AI学伴的五大理由:解锁学习新体验与核心好处

在AI技术蓬勃发展的今天&#xff0c;教育领域正经历一场深刻的变革。赶考状元AI学伴作为创新教育模式的代表&#xff0c;为孩子们带来了前所未有的学习新体验。越来越多的家长开始关注并选择这一系统&#xff0c;其背后的理由和好处值得深入探讨。本文将从行业角度&#xff0c;…...