java awt和swing介绍
Java AWT(Abstract Window Toolkit)和 Swing 是用于创建图形用户界面(GUI)的 Java API。
AWT
AWT 是 Java 最初的平台依赖的窗口图形界面工具包,它提供了一组基本的 GUI 组件、窗口管理、事件处理等。AWT 组件是重量级组件,因为它们是由本地系统窗口组件在 Java 应用程序中的对应物。这意味着,当你在 Java 程序中创建一个按钮或窗口时,AWT 实际上会在底层操作系统上创建一个真实的按钮或窗口。
AWT 的主要特点和局限性包括:
- 与平台相关,外观和行为与运行它们的操作系统相匹配。
- 重量级组件可能导致性能问题。
- 可移植性好,但是外观和感觉(look and feel)不一致。
- 组件集有限,不支持高级组件和装饰。
Swing
Swing 是建立在 AWT 之上的,提供了一套丰富的 GUI 组件。与 AWT 不同,Swing 组件是轻量级的,因为 Swing API 自己绘制了组件的外观,而不依赖于本地系统的组件。Swing 提供了更加复杂和灵活的组件,如树、表格、标签页和复杂的文本编辑器。
Swing 的主要特点包括:
- 轻量级组件,不依赖于本地的窗口系统。
- 可以通过外观和感觉(look and feel)提供跨平台的一致性。
- 提供了一个可插拔的外观和感觉(pluggable look and feel),可以改变组件的外观而不改变它们的功能。
- 提供了比 AWT 更广泛的组件集。
- 支持更复杂的组件和装饰。
Swing 组件以 "J" 开头,例如 JButton, JTable, JFrame 等,以区别于 AWT 的 Button, Table, Frame 等。
总结
AWT 和 Swing 都可以用来创建 Java GUI 应用程序,但 Swing 是更现代、更灵活的选择,提供了更好的用户体验和更广泛的功能。随着时间的推移,Swing 已经成为 Java GUI 开发的首选框架,而 AWT 主要用于支持旧的应用程序或与系统级组件交互。Java 还引入了 JavaFX,这是一个更现代、功能更强大的 GUI 框架,旨在取代 Swing,但 Swing 依然在许多现有应用程序中广泛使用。
相关文章:
java awt和swing介绍
Java AWT(Abstract Window Toolkit)和 Swing 是用于创建图形用户界面(GUI)的 Java API。 AWT AWT 是 Java 最初的平台依赖的窗口图形界面工具包,它提供了一组基本的 GUI 组件、窗口管理、事件处理等。AWT 组件是重量…...
奇怪的错误记录
https://github.com/meta-llama/llama3/issues/80 读模型没问题,推理时出现: RuntimeError: “triu_tril_cuda_template” not implemented for ‘BFloat16’ ———————————————— 事发原因 我尝试了解transformers的AutoProcessor时&a…...
来啦,经典传说大变身牛郎织女后代逗趣日常
《落凡尘:星宿大冒险》来啦! 经典传说大变身,牛郎织女后代金风, 上演一出“星际小侦探”的逗趣日常! 想象一下,二十八星宿那些傲娇的星星们, 居然能“离家出走”,还差点把天给掀了…...
【uniapp-ios】App端与webview端相互通信的方法以及注意事项
前言 在开发中,使用uniapp开发的项目开发效率是极高的,使用一套代码就能够同时在多端上线,像笔者之前写过的使用Flutter端和webview端之间的相互通信方法和问题,这种方式本质上实际上是h5和h5之间的通信,网上有非常多…...
Qt常用基础控件总结—表格控件(QTableWidget类)
表格控件QTableWidget 表格控件最上面一排是只读的水平表头,最左边一列是只读的垂直表头。表头又可以细分为多个分段(section),水平表头的分段就是表格各个列的列首,垂直表头 分段就是表格各个行的行首。表格控件的实体区域是按行、列排布的单元格,单元格内容一般用 QTa…...
笔记:Entity Framework Core 数据库迁移add-migration
一、目的: 数据库迁移是一种管理数据库架构变化的技术,它允许开发者在应用程序的生命周期中安全地更新数据库架构,而不会丢失数据或破坏现有的数据库结构。在Entity Framework Core(EF Core)中,数据库迁移特…...
准备工作+1、请求和响应+2、模型和管理站点
Django快速入门——创建一个基本的投票应用程序 准备工作1、创建虚拟环境2、安装django 1、请求和响应(1)创建项目(2)用于开发的简易服务器(3)创建投票应用(4)编写第一个视图1、编写…...
js 格式化时间
方法一:使用toLocaleString或toLocaleDateString/toLocaleTimeString Date对象提供了toLocaleString()、toLocaleDateString()和toLocaleTimeString()方法,这些方法允许你根据本地时间格式来显示日期和时间。虽然它们不直接提供高度自定义的格式选项&am…...
python 缩放照片
pip install Pillow from PIL import Image 打开一个图片文件 img Image.open(r"C:\Users\Administrator\Desktop\我的证件\证件照.jpg") 设定新的尺寸 new_size (480, 640) 缩放图片 resized_img img.resize(new_size) 显示缩放后的图片 resized_img.sh…...
【C语言】指针(1):入门理解(课堂随笔)
目录 一、内存和地址 二、指针变量和地址 三、指针变量类型的意义 一、内存和地址 只要讲指针就离不开内存 因为指针就是访问内存的 计算上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数 据也会放…...
LLMs可以进行任务规划吗?如果不行,LLMs+GNN可以吗?
深度图学习与大模型LLM(小编): 大家好,今天向大家介绍一篇最新发布的研究论文(20240530)。这篇论文探讨了如何通过引入GNN来提高大模型在任务规划(task planning)中的性能。*论文分析了LLMs在任务规划上的局限性,并提出了一种简单而有效的解决方案。* 1.…...
性价比高充电宝有哪些?充电宝十大最佳品牌大盘点!
在如今这个高度数字化的时代,我们的生活离不开各种电子设备,而充电宝作为保障电子设备续航的重要工具,其地位日益凸显。然而,面对市场上琳琅满目的充电宝品牌和产品,要挑选到一款性价比高的充电宝并非易事。在这篇盘点…...
hnust 1963: 邻接矩阵表示法
hnust 1963: 邻接矩阵表示法 题目描述 输入一个图,用邻接矩阵存储,并实现一些操作。 拷贝下面的代码,按要求完成其中的FirstAdjVex,NextAdjVex和CreateUDG操作,其他地方不得改动。 //邻接矩阵表示图 #include <io…...
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
章节内容 上一节我们完成了: Hive中数据导出:HDFSHQL操作上传内容至Hive、增删改查等操作 背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭建过一次&am…...
215.Mit6.S081-实验三-page tables
在本实验室中,您将探索页表并对其进行修改,以简化将数据从用户空间复制到内核空间的函数。 一、实验准备 开始编码之前,请阅读xv6手册的第3章和相关文件: kernel/memlayout.h,它捕获了内存的布局。kernel/vm.c&…...
flask使用定时任务flask_apscheduler(APScheduler)
Flask-APScheduler描述: Flask-APScheduler 是一个 Flask 扩展,增加了对 APScheduler 的支持。 APScheduler 有三个内置的调度系统可供您使用: Cron 式调度(可选开始/结束时间) 基于间隔的执行(以偶数间隔运行作业…...
ApiFox或postman怎么用params类型传输json或集合+json的String类型
你是否碰见过这样的接口? post请求然后传输的参数都要和查询时一样以param形式传参数,那String什么的都好说,传就直接进后台了,那json呢,集合呢,是不是直接给你返400呢. 1.传json如何处理 那我们看看怎么实现,如果你要传json数据,那需要将特殊字符转义,也叫url转码,否则传不…...
数据结构第16节 最大堆
最大堆是一种特殊的完全二叉树数据结构,其中每个父节点的键值都大于或等于其子节点的键值。在Java中,最大堆通常用于实现优先队列,堆排序算法,或者在需要快速访问最大元素的应用场景中。 让我们通过一个具体的案例来说明最大堆的…...
显卡、显卡驱动、cuda、cuDNN之间关系
显卡、显卡驱动、CUDA 和 cuDNN 是构成高性能计算和深度学习环境的关键组件,它们之间有着紧密的联系。下面是对这些组件及其关系的详细介绍: 显卡(GPU) 显卡,全称为图形处理器(Graphics Processing Unit&…...
Rewrk一个更现代的http框架基准测试实用程序
Rewrk一个更现代的http框架基准测试实用程序。HTTP基准测试(HTTP benchmarking)是一种测量和评估HTTP服务器或应用程序性能指标的活动。其目的是在特定条件下模拟大量用户请求,以测量服务器或应用程序的响应能力、吞吐量、延迟等指标…...
程序员因简单自动化放弃Python转C,底层逻辑令人震撼
一、一个“简单自动化”,逼得程序员放弃Python转C 拥有一个共识的程序员是很多的,那就是Python、JavaScript上手速度快,还省力,进行写自动化工具完全就是“降维打击”,又有谁会花费力气去写晦涩到难以理解的C语言呢&am…...
使用AI完成Swagger接口类型在前端自动生成的工具
厌倦了手写 TypeScript 类型?我做了一个工具帮你从 Swagger 自动生成 背景:一个让人抓狂的日常 做前端的同学应该都经历过这种场景: 后端给你一个新接口,你打开接口文件,写下: export async function g…...
基于单片机的温控风扇(有完整资料)
资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T4272204C设计简介:本设计是基于单片机的语音控制温控风扇,主要实现以下功能:1、可通过LCD1602显示温度和档位ÿ…...
嵌入式滚动平均滤波库:SimpleSmooth轻量级实现
1. 项目概述 SimpleSmooth 是一个专为嵌入式系统设计的轻量级滚动平均值计算库,其核心目标是为模拟信号采集(如 ADC 读数)提供低开销、无动态内存分配、零依赖的数字滤波能力。该库并非从零构建,而是对 Arduino 官方示例中经典平…...
产业园区如何降低科技服务搭建成本?
观点作者:科易网-国家科技成果转化(厦门)示范基地一、现状概述:科技服务搭建的“高门槛”与“低效率” 产业园区作为区域创新的核心载体,近年来在政策红利与产业集聚的双重驱动下蓬勃发展。然而,传统科技服…...
游戏盾导致 Unity/UE 引擎崩溃?内存占用、SO 库冲突深度排查
接入游戏盾后碰到 Unity、UE 编辑器或打包后崩溃、内存暴涨、SO 库冲突的问题,应该都不陌生。我最近在几个项目里反复踩过这些坑,从日志分析、内存追踪到 SO 符号冲突,一步步定位下来,把完整排查流程和解决方案整理出来࿰…...
丧尸危机模拟:灾备系统的终极压力测试
对于软件测试从业者而言,压力测试早已是日常工作的一部分。我们习惯于用并发用户数、吞吐量、响应时间等冰冷指标,去描绘一个系统在极限负载下的“抗压能力”。然而,当我们将这些概念投射到一个更宏大、更富有冲击力的隐喻——丧尸危机之中时…...
LoRa土壤监测与灌溉控制系统方案
当前农业生产中,土壤水分、温度等环境参数是影响作物生长的核心因素,传统种植模式依赖人工经验判断灌溉时机与用量,存在诸多局限。随着智慧农业、精准农业的快速发展,物联网技术在农业灌溉领域的应用日益广泛,LoRa作为…...
借助快马平台AI能力打造智能自适应的contextmenumanager管理系统
最近在做一个需要频繁使用右键菜单的项目,发现传统contextmenu管理方式实在太麻烦了。每次新增功能都要手动写一堆配置代码,维护起来也头疼。正好看到InsCode(快马)平台的AI辅助开发功能,尝试用它打造了一个智能自适应的contextmenumanager系…...
重构macOS滚动体验:Scroll Reverser的跨设备解决方案
重构macOS滚动体验:Scroll Reverser的跨设备解决方案 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 破解多设备滚动的混乱困局 当设计师小李同时连接数位板和鼠标工…...
