Java Swing-1.基本概念及组件

Swing 基本概念及组件

前序

随着网络的发展 ,java Swing 不在受主流的关注,桌面版应用 开发也出现了更方便的语言和相关的脚手架;

  • 之所以重提 Swing
  1. 对于一些简单的桌面场景它还是可以满足的
  2. 对于原本学习Java的同学,学习swing 会比学习另外一个语言的学习成本低
  3. Java 如今版本已经更新到 jdk 22,依旧保留这Swing,说明虽不是主流,但仍有价值

  • 适合人群
  1. 本身就会Java
  2. 只是想开发一些常用,或日用的小工具,而非大型或对项目样式等要求非常多的系统。

  • 不适合人群
    不会java人群,建议直接学习一门开发桌面版的主流语言或脚手架。人的精力本就有限,可以将精力花费在另外一个更有潜力的东西上

概念

Swing 用于构建图形用户界面(GUI)的Java库类,提供一些列的组件和布局管理器。(开发桌面版应用用的。如大Windows 上的 office系列软件等软件)
Swing 组件采用MVC(模型-视图-控制器)设计模式,模型用于控制组件状态;视图展现组件;控制器控制事件和组件做出相应的响应。而Swing 使用UI 代理对视图 和控制器进行了封装。所以又可成为 (模型-代理)

Swing与AWT :
Swing 比AWT 更优秀,样式更多,一部分Swing 是在AWT 的基础上开发的;总体有点是:

  • 可增加提示信息
  • 可增加图标ICON
  • 支持可插拔外观(皮肤)
  • 支持边框

基本组件

容器

可分为两大类 Window 和 Panel

  • Window 为独立的顶级窗口

    • JFrame:窗口

    • JDialog: 对话框

    • JApplet:java 小程序

    • JWindow:无边框窗口

  • Panel:可放其他组件,但不可单独存在必须依赖于其他容器

    • JSplitPane:分隔面板
    • JOptionPane :简单对话框
    • JTabbedPane:标签页
    • JLayeredPane:可重叠的容器
    • JDesktopPane:内部窗口

事件

高级事件和低级事件

  • 低级事件:绑定特定的动作,(键盘事件,鼠标事件)如点击 ,放大,缩小,关闭等
  • 高级事件:通俗点就是绑定多个动作;文本事件,选择事件;

菜单

  • JMenuBar: 菜单块,菜单的容器
  • JMenu: 单个菜单的容器,也可做为单个菜单用
  • JPopupMenu:右键菜单
  • JMenuItem: 单个菜单
  • JCheckboxMenuItem: 可多选的菜单
  • JRadioButtonMenuItem:单选菜单
  • JMenuShortcut:菜单快捷键

表单

  • JComboBox: 下拉列表
  • JFileChooser: 文件选择器
  • JScrollBar: 滚动条
  • JLIst: 列表框
  • JRadioButton:单选按钮
  • JCheckBox: 复选框组件
  • JSlider: 滑动条
  • JProgressBar:进度条
  • JTable: 表格
  • JTree:树形结构
  • JButton:按钮
  • JLable: 标签
  • JTextField: 单行文本框
  • JTextArea:多行文本
  • JToolBar: 工具条
  • JTextPane:自定义编辑器

边框

  • LineBorder: 边框线的颜色厚度
  • MatteBorder:边框的图案颜色
  • BevelBorder:立体边框
  • TitledBorder: 边框标题
  • CompoundBorder:组合边框

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

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

相关文章

大数据调度组件之Apache DolphinScheduler

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。 主要特性 易于部署,提供四种部署方式,包括Standalone、Cluster、Docker和…

XCode Build时遇到 .entitlements could not be opened 的问题

遇到错误 在构建成功的XCode工程上,手动打开XCode并Build,遇到以下问题: The file .entitlements could not be opened. Did you forget to declare this file as an output of a script phase or custom build rule which produces it 打…

关于一次开源java spring快速开发平台项目RuoYi部署的记录

关于一次开源java spring快速开发平台项目RuoYi部署的记录 本次因为需要一些练习环境,想要快速搭建一个javaweb 项目作为练习环境,经过查询和实验找到一个文档详细,搭建简单,架构也相对比较新的开源项目RuoYi。 项目介绍&#xf…

原生微信小程序在顶部胶囊左侧水平设置自定义导航兼容各种手机模型

无论是在什么手机机型下,自定义的导航都和右侧的胶囊水平一条线上。如图下 以上图iphone12,13PRo 以上图是没有带黑色扇帘的机型 以下是调试器看的wxml的代码展示 注意:红色阔里的是自定义导航(或者其他的logo啊,返回之…

列出D3的所有交互方法,并给出示例

D3.js 提供了丰富的交互方法,可以用来增强图表的用户交互体验。以下是一些常用的交互方法及其示例: 1. 鼠标事件 on("mouseover", function) 用途: 当鼠标悬停在元素上时触发。示例:svg.selectAll(".bar").on("mouseover&qu…

小程序-使用 iconfont 图标库报错:Failed to load font

官方默认可以忽略此错误,在清除缓存后首次刷新会显示此错误,重新渲染错误消失 解决方法: 在 iconfont 图标库选择项目设置 选中 Base64 保存,重新点击链接 -> 复制代码到项目中 操作步骤:

[免费]SpringBoot+Vue毕业设计论文管理系统【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue毕业设计论文管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue毕业设计论文管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 现代经济快节奏发展以及不断完善升级的信…

System Control Units (SCU)

本文对Ifx TC3xx的System Control Units (SCU)模块进行介绍,此网页为汇总连接,具体模块见对应超链接。 系统控制单元(SCU)是一组控制各种系统功能的子模块,包括以下模块: Reset Control (RCU)Trap genera…

网站推广实战案例:杭州翔胜科技有限公司如何为中小企业打开市场大门

以下是以杭州翔胜科技有限公司为例,解析其如何通过网站推广为中小企业打开市场大门的实战案例: 一、一站式网站推广方案 杭州翔胜科技有限公司提供一站式网站推广方案,该方案整合了多种推广手段,如搜索引擎优化(SEO&a…

Spring Cloud Stream实现数据流处理

1.什么是Spring Cloud Stream? 我看很多回答都是“为了屏蔽消息队列的差异,使我们在使用消息队列的时候能够用统一的一套API,无需关心具体的消息队列实现”。 这样理解是有些不全面的,Spring Cloud Stream的核心是Stream&#xf…

OpenMMlab导出Mask R-CNN模型并用onnxruntime和tensorrt推理

onnxruntime推理 使用mmdeploy导出onnx模型: from mmdeploy.apis import torch2onnx from mmdeploy.backend.sdk.export_info import export2SDKimg demo.JPEG work_dir ./work_dir/onnx/mask_rcnn save_file ./end2end.onnx deploy_cfg mmdeploy/configs/mmd…

【大语言模型】ACL2024论文-19 SportsMetrics: 融合文本和数值数据以理解大型语言模型中的信息融合

【大语言模型】ACL2024论文-19 SportsMetrics: 融合文本和数值数据以理解大型语言模型中的信息融合 https://arxiv.org/pdf/2402.10979 目录 文章目录 【大语言模型】ACL2024论文-19 SportsMetrics: 融合文本和数值数据以理解大型语言模型中的信息融合目录摘要研究背景问题与挑…

39页PDF | 毕马威_数据资产运营白皮书(限免下载)

一、前言 《毕马威数据资产运营白皮书》探讨了数据作为新型生产要素在企业数智化转型中的重要性,提出了数据资产运营的“三要素”(组织与意识、流程与规范、平台与工具)和“四重奏”(数据资产盘点、评估、治理、共享)…

【UE5】使用基元数据对材质传参,从而避免新建材质实例

在项目中,经常会遇到这样的需求:多个模型(例如 100 个)使用相同的材质,但每个模型需要不同的参数设置,比如不同的颜色或随机种子等。 在这种情况下,创建 100 个实例材质不是最佳选择。正确的做…

[STBC]

空时分组编码STBC(Space Time Block Coding): //一个数据流通过多个天线发射发送,硬件编码器 STBC概念是从MIMO技术衍生出来的,目的是在多天线系统中提高数据传输的可靠性和传输距离。在rx(接收天线)和tx&…

241120学习日志——[CSDIY] [InternStudio] 大模型训练营 [09]

CSDIY:这是一个非科班学生的努力之路,从今天开始这个系列会长期更新,(最好做到日更),我会慢慢把自己目前对CS的努力逐一上传,帮助那些和我一样有着梦想的玩家取得胜利!!&…

PCB 间接雷击模拟

雷击是一种危险的静电放电事件,其中两个带电区域会瞬间释放高达 1 千兆焦耳的能量。雷击就像一个短暂而巨大的电流脉冲,会对建筑物和电子设备造成严重损坏。雷击可分为直接和间接两类,其中间接影响是由于感应能量耦合到靠近雷击位置的物体。间…

IDEA2019搭建Springboot项目基于java1.8 解决Spring Initializr无法创建jdk1.8项目 注释乱码

后端界面搭建 将 https://start.spring.io/ 替换https://start.aliyun.com/ 报错 打开设置 修改如下在这里插入代码片 按此方法无果 翻阅治疗后得知 IDEA2019无法按照网上教程修改此问题因此更新最新idea2024或利用插件Alibaba Clouod Toolkit 换用IDEA2024创建项目 下一步…

单向C to DP视频传输解决方案 | LDR6500

LDR6500D如何通过Type-C接口实现手机到DP接口的单向视频传输 在当今数字化浪潮中,投屏技术作为连接设备、共享视觉内容的桥梁,其重要性日益凸显。PD(Power Delivery)芯片,特别是集成了Type-C接口与DisplayPort&#xf…

Leetcode 第 143 场双周赛题解

Leetcode 第 143 场双周赛题解 Leetcode 第 143 场双周赛题解题目1:3345. 最小可整除数位乘积 I思路代码复杂度分析 题目2:3346. 执行操作后元素的最高频率 I思路代码复杂度分析 题目3:3347. 执行操作后元素的最高频率 II题目4:33…