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

http://www.lryc.cn/news/465614.html

相关文章:

  • (multi)map和set--C++
  • jmeter响应断言放进csv文件遇到的问题
  • 复旦大学全球供应链研究中心揭牌,合合信息共话大数据赋能
  • 达那福发布新品音致系列:以顶尖降噪技术,开启清晰聆听新篇章
  • 当物理学奖遇上机器学习:创新融合的里程碑
  • 模拟电路2
  • 大数据面试题整理——MapReduce
  • 【景观生态学实验】实验一 ArcGIS地理数据处理及制图基础
  • 今年双十一最值得入手的好物有哪些?双十一值得选购的好物盘点!
  • 【OpenCV】人脸识别方法
  • xxl-job定时任务
  • C#从零开始学习(如何构建应用)(1)
  • OpenCV高级图形用户界面(7)获取指定窗口的属性值函数getWindowProperty()的使用
  • Java实现文件上传功能
  • Leetcode|24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II
  • OpenCV学习笔记5——图像的数值计算
  • P3137 [USACO16FEB] Circular Barn S
  • yocto编辑软件包-devtool的使用方法
  • 51单片机快速入门之 串行通信 2024/10/21
  • webpack 老项目升级记录:node-sass 规定的 node v8 提升至支持 node v22
  • 【wpf】08 xml文件的存取操作
  • 即时通讯代码优化
  • jmeter学习(8)界面的使用
  • 记录一次hiveserver2卡死(假死)问题
  • 【ios】在 SwiftUI 中实现可随时调用的加载框
  • 字符、解释型语言、编程语言的互操作、输出
  • 基于Python的自然语言处理系列(39):Huggingface中的解码策略
  • 如何将视频格式转为mp4?好好看看下面这几个方法
  • 景区智慧公厕系统,监测公厕异味,自动清洁除臭
  • GitLab CVE-2024-6389、CVE-2024-4472 漏洞解决方案