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

GUI简介、Swing的常用组件、java程序的运行过程、class文件、JAR、runable_jar、双括号初始化

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

双括号初始化

相较于传统初始化,优点在于代码更加简洁

import java.awt.*;
import java.io.PrintStream;
import java.util.ArrayList;public class Main {public static void main(String[] args) {
//        ArrayList<Integer> list = new ArrayList<>();
//        list.add(11);
//        list.add(22);
//        System.out.println(list);//双括号写法ArrayList<Integer> list = new ArrayList<Integer>(){{add(11);add(22);}};System.out.println(list);}
}

控制台输出

[11, 22]

相关文章:

GUI简介、Swing的常用组件、java程序的运行过程、class文件、JAR、runable_jar、双括号初始化

GUI简介 GUI&#xff1a;图形用户界面&#xff0c;在计算机中采用图形的方式显示用户界面 java的GUI开发 AWT&#xff1a;java最早推出的GUI编程开发包&#xff0c;界面风格跟随操作系统SWT&#xff1a;eclipse就是java使用SWT开发的Swing&#xff1a;在AWT的基础上扩充了功能…...

@Autowired和@Resource和getBean()区别

今天遇到一个对我来说很奇葩的错误&#xff0c;我想在Service中注入bean&#xff0c;我这里使用了Autowired和Resource都不能注入&#xff0c;导致初始化失败&#xff0c;使用了getBean()方法就可以注入。从来没有遇到过这个问题。后来我查询了一下&#xff0c;才明白了原理。我…...

Merlion笔记(四):添加一个新的预测模型

文章目录 1 模型配置类2 模型类3 运行模型&#xff1a;一个简单的例子4 可视化5 定量评估6 定义一个基于预测器的异常检测器 本文提供了一个示例&#xff0c;展示如何向 Merlion 添加一个新的预测模型,遵循 CONTRIBUTING.md 中的说明。建议在阅读本篇文章之前&#xff0c;先查…...

【论文阅读】ESRGAN

学习资料 论文题目&#xff1a;增强型超分辨率生成对抗网络&#xff08;ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks&#xff09;论文地址&#xff1a;[1809.00219] ESRGAN&#xff1a;增强型超分辨率生成对抗网络代码&#xff1a;xinntao / ESRGAN&am…...

电脑异常情况总结

文章目录 笔记本无症状息屏黑屏 笔记本无症状息屏黑屏 &#x1f34e; 问题描述&#xff1a; 息屏导致黑屏&#xff1b;依次操作计算机--》右键--》管理--》事件查看器--》Windows日志--》系统&#xff1b;从息屏到异常黑屏之间出现了很多错误&#xff0c;如下&#xff1a;事件…...

[项目详解][boost搜索引擎#1] 概述 | 去标签 | 数据清洗 | scp

目录 一、前言 二、项目的相关背景 三、搜索引擎的宏观原理 四、搜索引擎技术栈和项目环境 五、正排索引 VS 倒排索引--原理 正排索引 分词 倒排索引 六、编写数据去除标签和数据清洗模块 Parser 1.数据准备 parser 编码 1.枚举文件 EnumFile 2.去标签ParseHtml(…...

PL/I语言的起源?有C语言,有B语言和A语言吗?为什么shell脚本最开始可能有#!/bin/bash字样?为什么不支持嵌套注释?

PL/I语言的起源 在20世纪50~60年代&#xff0c;当时主流的编程语言是COBOL/FORTRAN/ALGOL等&#xff0c;IBM想要设计一门通用的编程语言&#xff0c;已有的编程语言无法实现此要求&#xff0c;故想要设计一门新语言&#xff0c;即是PL/I. PL/I是Programming Language/One的缩写…...

gin入门教程(3):创建第一个 HTTP 服务器

首先设置golang github代理&#xff0c;可解决拉取git包的时候&#xff0c;无法拉取的问题&#xff1a; export GOPROXYhttps://goproxy.io再查看自己的go版本&#xff1a; go version我这里的版本是&#xff1a;go1.23.2 linux/arm64 准备工作做好之后就可以进行开发了 3.…...

Vue+ECharts+iView实现大数据可视化大屏模板

Vue数据可视化 三个大屏模板 样式还是比较全的 包括世界地图、中国地图、canvas转盘等 项目演示&#xff1a; 视频&#xff1a; vue大数据可视化大屏模板...

el-table 表格设置必填项

el-table 表格设置必填项 要在 el-table 中集成 el-form 来设置必填项&#xff0c;并进行表单验证&#xff0c;可以使用 Element UI 提供的表单验证功能。下面是一个详细的示例&#xff0c;展示了如何在 el-table 中使用 el-form 来设置必填项&#xff0c;并进行验证。 示例代…...

vivo 轩辕文件系统:AI 计算平台存储性能优化实践

在早期阶段&#xff0c;vivo AI 计算平台使用 GlusterFS 作为底层存储基座。随着数据规模的扩大和多种业务场景的接入&#xff0c;开始出现性能、维护等问题。为此&#xff0c;vivo 转而采用了自研的轩辕文件系统&#xff0c;该系统是基于 JuiceFS 开源版本开发的一款分布式文件…...

Vue学习笔记(四)

事件处理 我们可以使用 v-on 指令 (通常缩写为 符号) 来监听 DOM 事件&#xff0c;并在触发事件时执行一些 JavaScript。用法为 v-on:click"methodName" 或使用快捷方式 click"methodName" 事件处理器的值可以是&#xff1a; 内联事件处理器&#xff1…...

发送短信,验证码

短信 注册阿里云的账号 开通短信服务 测试短信服务是否可用 导入jar <!-- 短信相关 --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.6.0</version><…...

国内大语言模型哪家更好用?

大家好&#xff0c;我是袁庭新。 过去一年&#xff0c;AI大语言模型在爆发式增长&#xff0c;呈现百家争鸣之态。国内外相关厂商积极布局&#xff0c;并相继推出自家研发的智能化产品。 我在工作中已习惯借助AI来辅助完成些编码、创作、文生图等任务&#xff0c;甚至对它们产…...

OTP一次性密码、多因子认证笔记

文章目录 双因子认证(多因子认证)otp算法(ONE-TIME PASSWORD)otp算法大概分为几部 otp的机制服务端客户端(app端)两种主流算法otp流程图 otp是通用的吗 手机验证码天天在用&#xff0c;但是居然不知道这个是otp&#xff0c;伤自尊了&#xff0c;必须弄清原理。 先要知道几个概念…...

玉米生长阶段检测系统源码&数据集全套:改进yolo11-dysample

改进yolo11-DLKA等200全套创新点大全&#xff1a;玉米生长阶段检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.24 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或者视…...

【机器学习】决策树算法

目录 一、决策树算法的基本原理 二、决策树算法的关键概念 三、决策树算法的应用场景 四、决策树算法的优化策略 五、代码实现 代码解释&#xff1a; 在机器学习领域&#xff0c;决策树算法是一种简单直观且易于理解的分类和回归方法。它通过学习数据特征和决策规则&#…...

P2818 天使的起誓

天使的起誓 题目描述 Tenshi 非常幸运地被选为掌管智慧之匙的天使。在正式任职之前&#xff0c;她必须和其他新当选的天使一样要宣誓。 宣誓仪式是每位天使各自表述自己的使命&#xff0c;他们的发言稿放在 n n n 个呈圆形排列的宝盒中。这些宝盒按顺时针方向被编上号码 1…...

数字信号处理实验简介

数字信号处理(Digital Signal Processing,简称DSP)是电子工程、通信、计算机科学等领域中的一个重要分支,它涉及到对离散时间信号进行分析、处理和合成的理论和方法。数字信号处理课程的实验环节通常旨在帮助学生将理论知识应用于实际问题中,通过实践加深对DSP概念和技术的…...

Flask-SQLAlchemy 组件

一、ORM 要了解 ORM 首先了解以下概念。 什么是持久化 持久化 (Persistence)&#xff0c;即把数据&#xff08;如内存中的对象&#xff09;保存到可永久保存的存储设备中&#xff08;如磁盘&#xff09;。持久化的主要应用是将内存中的数据存储在关系型的数据库中&#xff0c;…...

Could not retrieve mirrorlist http://mirrorlist.centos.org错误解决方法

文章目录 背景解决方法 背景 今天在一台新服务器上安装nginx&#xff0c;在这个过程中需要安装相关依赖&#xff0c;在使用yum install命令时&#xff0c;发生了以下报错内容&#xff1a; Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx8…...

最新PHP网盘搜索引擎系统源码 附教程

最新PHP网盘搜索引擎系统源码 附教程&#xff0c;这是一个基于thinkphp5.1MySQL开发的网盘搜索引擎&#xff0c;可以批量导入各大网盘链接&#xff0c;例如百度网盘、阿里云盘、夸克网盘等。 功能特点&#xff1a;网盘失效检测&#xff0c;后台管理功能&#xff0c;网盘链接管…...

SpringBoot面试热题

1.Spring IOC(控制反转)和AOP(面相切面编程)的理解 控制反转意味着将对象的控制权从代码中转移到Spring IOC容器。 本来是我们自己手动new出来的对象&#xff0c;现在则把对象交给Spring的IOC容器管理&#xff0c;IOC容器作为一个对象工厂&#xff0c;管理对象的创建和依赖关系…...

ASP.NET Core8.0学习笔记(二十三)——EF Core自引用

一、什么是自引用 1.在常见的树状目录中&#xff0c;其结构如下&#xff1a; 每一个菜单可能有父级菜单&#xff0c;也可能有子菜单。但是无论是哪一级菜单&#xff0c;他们都是同属于菜单对象。将这个菜单对象使用代码进行描述&#xff1a; 在上面的代码中&#xff0c;主…...

springboot童装销售管理系统-计算机毕业设计源码92685

摘 要 童装销售管理系统是为童装店商家提供的在线销售管理系统&#xff0c;本系统的研发设计能够增加童装店商家的童装宣传和推广&#xff0c;提升客流量和订单量&#xff0c;增加商家的营业收益。原有的童装品销售系统管理采用手工管理的方式&#xff0c;各种童装品宣传和订单…...

OpenCV中的图像通道合并

在计算机视觉和图像处理领域&#xff0c;OpenCV是一个强大的工具库&#xff0c;它提供了从基本操作到复杂算法的广泛功能。今天&#xff0c;我们将通过一个简单的示例来探索OpenCV中的图像通道处理&#xff0c;特别是如何操作和理解BGR与RGB颜色空间的差异。 Lena图像&#xf…...

Flutter TextField和Button组件开发登录页面案例

In this section, we’ll go through building a basic login screen using the Button and TextField widgets. We’ll follow a step-bystep approach, allowing you to code along and understand each part of the process. Let’s get started! 在本节中&#xff0c;我们…...

【vue + mockjs】Mockjs——数据接口模拟

一、mockjs 根据规则生成随机数据&#xff0c;通过拦截 ajax 请求来实现"模拟前端数据接口“的作用。 二、安装 // yarn yarn add mockjs// npm npm install mockjs --save-dev 三、主要模块 mock 根据数据模板生成对应的随机数据Random 工具函数, 调用具体的类型函数…...

ssm订餐系统-计算机毕业设计源码26763

摘 要 本文提出了基于SSM框架的订餐系统的设计与实现。该系统通过前后端分离的方式&#xff0c;采用SpringMVCSpringMyBatis&#xff08;SSM&#xff09;框架进行开发&#xff0c;实现了用户注册、登录、点餐、购物车、订单管理等功能。系统设计了用户注册模块&#xff0c;用户…...

4.2-7 运行MR应用:词频统计

文章目录 1. 准备数据文件2. 文件上传到HDFS指定目录2.1 创建HDFS目录2.2 上传文件到HDFS2.3 查看上传的文件 3. 运行词频统计程序的jar包3.1 查看Hadoop自带示例jar包3.2 运行示例jar包里的词频统计 4. 查看词频统计结果5. 在HDFS集群UI界面查看结果文件6. 在YARN集群UI界面查…...

万链网站做的怎么样/电商平台运营方案

为什么80%的码农都做不了架构师&#xff1f;>>> 一、New / Delete原理 当我们在程序中写下 new 和 delete 时&#xff0c;我们实际上调用的是 C 语言内置的 new operator 和 delete operator。所谓语言内置就是说我们不能更改其含义&#xff0c;它的功能总是一致的…...

网站模板带手机站/网络推广网站

前言 基于哨兵机制&#xff0c;实现高可用&#xff0c;也就是集群架构。 主数据节点挂了 依次执行以下步骤 哨兵节点监控数据节点 1.所有从数据节点监控挂了&#xff0c;然后&#xff0c;中止复制主数据节点 2.所有哨兵节点监控挂了&#xff0c;然后&#xff0c;判断是否超过下…...

中小企业建立网站最经济的方式/查关键词排名软件

最近在弄linux系统的环境&#xff0c;搭建vue环境&#xff0c;由于是第一次接触vue以前也没使用过&#xff0c;所以才搭建环境的时候还是挺闷逼的。记录一下&#xff0c;免得以后忘记了。 安装cnpm 由于不知道vue和npm的关系&#xff0c;所以自己想先安装npm并设置成阿里的cnpm…...

网站后台选项卡效果/上海推广seo

2019独角兽企业重金招聘Python工程师标准>>> 一. 什么是Native Method 简单地讲&#xff0c;一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法&#xff1a;该方法的实现由非java语言实现&#xff0c;比如C。这个特征并…...

怎么在濮阳网站做宣传/百度小说风云榜2022

第四章 计算机网络练习题1、Internet网采用的通信协议是( B )协议。A、x.25 B、TCP/IP C、SMIP D、IPX/SPX2、国际标准化组织的英文缩写是( B )。(A) OSI (B) ISO (C) ANSI (D) IEEE3、WWW采用( A )技术组织和管理浏览或信息检索的系统。A、超文本和超媒体 B、快速查询 C、动画…...

网站开发时间/营销渠道方案

直接一点上图(使用的是JDK1.7的源码)&#xff1a;Object类总共13个方法 1&#xff0e;clone方法 保护方法&#xff0c;实现对象的浅复制&#xff0c;只有实现了Cloneable接口才可以调用该方法&#xff0c;否则抛出CloneNotSupportedException异常。 主要是JAVA里除了8种基本类…...