GUI编程..

1.GUI(Graphical User Interface 图形用户界面)

所谓GUI 指的是在计算机中采用图形方式展示用户的界面
在GUI之前采用的是字符界面
在这里插入图片描述
有了GUI之后 采用的则是图形界面
在这里插入图片描述

2.Java的GUI编程方案

常见的有四种在这里插入图片描述

3.Swing

1.实现一个窗口

public class Main{public static void main(String[] args) throws IOException, ClassNotFoundException {// 首先创建一个窗口 并且命名JFrame frame = new JFrame("第一个窗口");// 设置窗口的大小和位置frame.setBounds(300, 300, 400, 400);// 设置窗口关闭以后程序就退出frame.setDefaultCloseOperation(EXIT_ON_CLOSE);// 设置窗口可见性frame.setVisible(true);}
}

2.Swing的常用组件

Swing提供了很多常用的组件 其中紫色的组件位于java.awt包中 绿色的组件位于javax.swing包中在这里插入图片描述
以下是swing中常用的组件预览
在这里插入图片描述
接下来我们利用这些组件实现一个小案例:
就是实现以下简单的加法运算 而且要对不合理的输入触发反应

public class MyFrame extends JFrame {// 定义一个构造方法public MyFrame(){// 调用父类的构造方法创建一个窗口super("计算窗口");// 设置窗口的位置和大小setBounds(400, 400, 700, 400);// 设置窗口的关闭后的默认操作 即程序退出setDefaultCloseOperation(EXIT_ON_CLOSE);// 接着我们设置一下窗口的布局方式为流式布局 是从左到右、从上到下进行布局的 可以设置水平间隔和竖直间隔setLayout(new FlowLayout(FlowLayout.LEFT,  20, 20));// 我们可以设置一个字体 去控制之后的字体大小Font font = new Font("微软雅黑", Font.PLAIN, 18);// 接着我们首先添加第一个加数的文本域JTextField tf1 = new JTextField(10);tf1.setFont(font);add(tf1);// 接着我们添加加号所在的文本标签JLabel addLabel = new JLabel("+");addLabel.setFont(font);add(addLabel);// 接着我们添加第二个加数的文本域JTextField tf2 = new JTextField(10);tf2.setFont(font);add(tf2);// 接着我们添加等号所在的文本标签JLabel equalLabel = new JLabel("=");equalLabel.setFont(font);add(equalLabel);// 接着我们添加结果所在的文本标签JLabel resultLabel = new JLabel();resultLabel.setFont(font);resultLabel.setText("?");add(resultLabel);// 接着我们添加一个计算的按钮JButton button = new JButton();button.setFont(font);button.setText("计算");add(button);// 为计算按钮添加监听器button.addActionListener((e) -> {try {int result = Integer.parseInt(tf1.getText()) + Integer.parseInt(tf2.getText());resultLabel.setText(result + "");}catch(Exception a){int w = 500;int h = 100;int x = this.getX() + ((this.getWidth() - w) >> 1);int y = this.getY() + ((this.getHeight() - h) >> 1);// 弹出一个警告窗口 设置弹出以后父窗口就不可以执行点击操作了JDialog dialog = new JDialog(this, true);dialog.setTitle("警告");dialog.setBounds(x, y, w, h);// 还得提示一下输入正确的值JLabel label = new JLabel("请输入正确的整数!!!");label.setFont(font);dialog.add(label);dialog.setVisible(true);}});}
}
public class Main{public static void main(String[] args) throws IOException, ClassNotFoundException {// 展示窗口以及一些组件new MyFrame().setVisible(true);}
}

4.Java程序的运行过程

有一个思考:Java的IDE是如何将我们所编写的Java程序运行起来的呢?
其实就是先将我们所编写的.java源文件编译成.class字节码文件 然后将字节码文件加载到JVM中 通过JVM解析成机器指令(二进制数据)

JDK的bin目录下已经包含了运行Java程序的工具(IDE就是调用了这些工具将Java程序运行起来的)
javac xx.java
编译xx.java为xx.class

java xx
启动JVM 加载xx.class文件
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/670222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

眼动追踪系统体验实验(脑与认知期末考核)

实验名称:眼动追踪系统体验实验 实验目的: 本实验旨在通过体验脑与认知眼动追踪系统,了解该技术在心理学、认知科学等领域的应用,理解它是怎样工作的,探究眼动追踪技术如何揭示人类认知过程的奥秘。 实验环境&#…

155基于matlab 的形态学权重自适应图像去噪

基于matlab 的形态学权重自适应图像去噪;通过串并联的滤波降噪对比图,说明并联降噪的优越性。输出降噪前后图像和不同方法的降噪情况的信噪比。程序已调通,可直接运行。 155matlab 自适应图像降噪 串并联降噪 (xiaohongshu.com)

一些参数(仅供个人理解)

1.mAP: 数据集的平均准确率 mAP50-95:mAP阈值为50到mAP阈值为95,间隔5%,取得10个mAP值,然后对这十个值取平均。 目标检测评估指标mAP:从Precision,Recall,到AP50-95【未完待续】_map50和map50-95-CSDN博客 2.IoU&a…

使用VASPKIT生成非整数倍扩胞结构

在计算某些任务时需要根据原胞进行非对称或者根号倍扩胞,使用vaspkit可以构建一个扩胞倍数矩阵,这样可以获得特定方向非整数倍的扩胞结构。 这里使用的命令为vaspkit的400模块 注意400的命令会让你连续输入三行,每行都需要三个数值&#xff0…

智能优化算法 | Matlab实现飞蛾扑火(MFO)(内含完整源码)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 智能优化算法 | Matlab实现飞蛾扑火(MFO)(内含完整源码) 源码设计 %%%% clear all clc SearchAgents_no=100; % Number of search ag

使用zip4j解压zip时文件名乱码解决最好的方案

zip4j解压zip时,出现中文乱码,看了下,zip4j解压时支持设置文件编码,我们只需要识别文件是不是utf-8编码,如果不是utf-8就使用gbk解压,但是这个判断没有100%准确的方式,我试过通过字节流的bom标记…

《动手学深度学习(PyTorch版)》笔记7.5

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

聚观早报 | iOS 17.4正式版将上线;魅族21 Pro或下月发布

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 2月5日消息 iOS 17.4正式版将上线 魅族21 Pro或下月发布 小米MIX Flip细节曝光 OPPO Find X7 Ultra卫星通信版 …

BUUCTF-Real-[ThinkPHP]IN SQL INJECTION

目录 漏洞描述 漏洞分析 漏洞复现 漏洞描述 漏洞发现时间&#xff1a; 2018-09-04 CVE 参考&#xff1a;CVE-2018-16385 最高严重级别&#xff1a;低风险 受影响的系统&#xff1a;ThinkPHP < 5.1.23 漏洞描述&#xff1a; ThinkPHP是一款快速、兼容、简单的轻量级国产P…

Java实现用户画像活动推荐系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 兴趣标签模块2.3 活动档案模块2.4 活动报名模块2.5 活动留言模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 数据流程设计3.4 E-R图设计 四、系统展示五、核心代码5.1 查询兴趣标签5.2 查询活动推荐…

Java智慧云智能教育平台

技术架构&#xff1a; SpringBoot Mybatis Shiro mysql redis 有需要该项目的小伙伴可以私信我你的Q。 功能描述&#xff1a; 支持多种题型&#xff1a;选择题、多选题、判断题、填空题、综合题以及数学公式。支持在线考试&#xff0c;教师在线批改试卷。 功能模块&am…

02. k210-在windows环境下烧录.bin文件

有些人的虚拟机串口可能没有设置好&#xff0c;不能在ubuntu下使用命令kflash 下载程序&#xff0c;那么本章介绍如何在windows10 环境下使用荔枝派的开源上位机 kflash_gui 来下载程序。 使用的开发板是荔枝派&#xff1a;Sipeed Maix Bit (带麦克风) 开发板。 1. 下载kflash_…

业务架构设计之汽配供应链与实现的实践总结

随着汽车行业的不断发展&#xff0c;汽配供应链的规模和复杂度也在不断增加。为了满足市场需求&#xff0c;建立一个高效、可靠的汽配供应链业务系统至关重要。本文将总结一些关键的实践经验&#xff0c;帮助读者了解如何设计和实现一个稳定且高效的汽配供应链业务系统。 1. 业…

第1节、电路连接【51单片机+L298N步进电机系列】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍如何搭建一个51单片机L298N步进电机控制电路&#xff0c;所用材料均为常见的模块&#xff0c;简单高效的方式搭建起硬件环境。 一、硬件清单 ①51单片机模块 ②恒流模块 ③开关电源 ④L298N模…

hexo和github.io博客的搭建

简要&#xff1a; 最近在牛客网上看到有很多应届毕业生大佬的求职简历上都写上了自己的博客地址&#xff0c;并且在acwing上看到图图佬&#xff0c;铅笔佬也有自己的博客地址&#xff0c;大部分都采用了自己搭建博客的方式&#xff0c;而不是用脏乱差的csdn来写博客。所以我也采…

项目02《游戏-08-开发》Unity3D

基于 项目02《游戏-07-开发》Unity3D &#xff0c; 本次任务做物品相互与详情的功能&#xff0c; 首先要做 点击相应&#xff0c; 接下来用接口实现点击相应事件&#xff0c;具体到代码中&#xff0c;我们找到需要响应鼠标事件的对象&#xff0c; 双击PackageCell…

C++ //练习 4.23 因为运算符的优先级问题,下面这条表达式无法通过编译。根据4.12节中的表(第147页)指出它的问题在哪里?应该如何修改?

C Primer&#xff08;第5版&#xff09; 练习 4.23 练习 4.23 因为运算符的优先级问题&#xff0c;下面这条表达式无法通过编译。根据4.12节中的表&#xff08;第147页&#xff09;指出它的问题在哪里&#xff1f;应该如何修改&#xff1f; string s "word"; stri…

前端实现标题滚动点击导航

效果图 右边滚动的html代码 <div class"right-box"><el-tabs v-model"isScrollNow" tab-position"right" class"updateTab" tab-click"scrollTo"style"height: fit-content;"><el-tab-pane label…

Hadoop-IDEA开发平台搭建

1.安装下载Hadoop文件 1&#xff09;hadoop-3.3.5 将下载的文件保存到英文路径下&#xff0c;名称一定要短。否则容易出问题&#xff1b; 2&#xff09;解压下载下来的文件&#xff0c;配置环境变量 3&#xff09;我的电脑-属性-高级设置-环境变量 4.详细配置文件如下&#…

vue3(笔记)

组合式Api setup-----相当于beforeCreate, create生命周期 reactive–定义状态 对象形式 响应式原理 toRefs— Pinia &#xff08;只有state、getters和actions&#xff09; 更加简洁的语法&#xff0c;完美支持Vue3的Composition api 和 对TypesCcript的完美支持