首页
学习
活动
专区
圈层
工具
发布

Java GUI 图形界面开发详解:从 AWT 到 Swing 的全面实践

Java 提供了两套 GUI 开发库: AWT(Abstract Window Toolkit):Java 最早期的 GUI 库,基于本地平台组件。...Swing:AWT 的增强版,提供更多组件,平台无关,开发更灵活。 本篇我们将结合理论与代码图示,全面讲解 Java GUI 编程的开发流程与实践案例。...二、Java GUI 技术栈对比图 技术 说明 优点 缺点 AWT Java GUI 最早库 轻量,简单 功能少,兼容差 Swing 更强 GUI 库 组件丰富,平台无关 比较老旧,界面风格传统 JavaFX...四、Swing 入门:比 AWT 更强大的 GUI 库 Swing 是建立在 AWT 之上的增强库,组件更丰富,功能更强。...典型的流程: 事件模型图 复制编辑用户操作 → 事件对象 → 注册的监听器 → 响应方法 示例:按钮点击事件 java复制编辑button.addActionListener(new ActionListener

89210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Swing的介绍

    Swing是一个为java设计的GUI工具包.Swing是JAVA基础类的一部分.Swing包括了图形用户界面(GUI)器件如 : 文本框,按钮,分隔窗格和表.Swing提供许多比AWT更好的屏幕显示元素...JAVA支持的任意面板.轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为.Swing开发图形界面比AWT更加优秀,因为Swing是一种轻量级组件,它采用100%的java实现,不再依赖于本地平台的...Swing组件都采用MVC(Model-View-Controller,既模型-视图-控制器)设计模式,从而可以实现GUI组件的显示逻辑和数据逻辑的分离,允许程序员自定义Render来改变GUI组件的显示外观...)用于控制对于各种事件,组件做出怎样的响应.当模型发送改变时,它会通知所有依赖它的视图,视图会根据模型数据更新自己.Swing使用UI代理来包装视图和控制器,还有另一个模型对象来维护该组件的状态.例如..., 按钮JButton有一个维护其状态信息的模型ButtonModel对象,Swing组件的模型是自动设置的,因此一般都使用JButton,而无须关系ButtonModel对象.因此, Swing组件的模型是自动设置的

    1.5K20

    Java Swing 的Document类详解

    Document是用于文本的容器,用作swing文本组件的模型。 此接口的目标是从非常简单的需求(纯文本文本字段)扩展到复杂需求(例如,HTML或XML文档)。...以下方法与文档内容的变异有关: insertString(int, java.lang.String, javax.swing.text.AttributeSet) remove(int, int) createPosition...(int) 通知 必须将有关Document突变传达给感兴趣的观察员。...更改通知遵循为JavaBeans指定的事件模型准则。 在JavaBeans事件模型中,一旦调度了事件通知,就必须在事件源发生任何进一步的突变之前通知所有侦听器。 此外,不保证交货顺序。...与属性相关的方法是: getProperty(java.lang.Object) putProperty(java.lang.Object, java.lang.Object) 有关Document

    2.5K41

    Java图形用户界面程序设计所需要使用的工具

    Java GUI技术的发展 Java提供了强大而丰富的GUI编程支持,利用这些技术可以轻而易举地开发出高效率的、便于操作的GUI程序。...因此,许多Java程序员更喜欢使用Swing,它是建立在AWT之上的高级GUI工具包。Swing提供了更丰富的组件和更高的性能,使得开发人员可以创建更复杂、更具交互性的GUI应用程序。...Swing是由100%纯 Java实现的,不再依赖于本地平台的 GUI, 因此可以在所有平台上都保持相同的界面外观。...Swing的特征 Swing 组件采用 MVC(Model-View-Controller, 即模型一视图一控制器)设计模式: 模型(Model): 用于维护组件的各种状态; 视图(View...当模型发生改变时,它会通知所有依赖它的视图,视图会根据模型数据来更新自己。Swing使用UI代理来包装视图和控制器, 还有一个模型对象来维护该组件的状态。

    1.1K10

    Swing 的任务线程与 EDT 事件分发队列模型

    Swing的线程安全靠事件队列和EDT来保证。 EventQueue的派发机制由单独的一个线程 - 事件派发线程(EDT)管理。 Swing将GUI请求放入一个事件队列中执行。...在许多Swing程序中,该线程主要目的是启动程序的GUI。创建UI的点,也就是程序开始将控制权转交给UI时的点。 一旦GUI启动后,对大多数事件驱动的桌面程序,初始化线程的工作就结束了。...在初始化线程(即禁止在main方法中直接创建Frame,在初始化线程中应使用invokeLater初始化GUI) 任务线程同Swing组件或其缺省数据模型进行的交互 都是非线程安全性操作。...,只需要仿照生产者/消费者模式加上线程的等待/通知即可。...请注意,如果doRun.run 引发未捕获的异常,则事件分发线程将展开(而不是当前线程)。 从1.3版本开始,此方法只是java.awt.EventQueue.invokeLater()的封面。

    1.4K22

    Java-GUI 编程之 Swing

    Swing是由100%纯 Java实现的,不再依赖于本地平台的 GUI, 因此可以在所有平台上都保持相同的界面外观。...由于 Swing 的所有组件完全采用 Java 实现,不再调用本地平台的 GUI,所以导致 Swing 图形界面的显示速度要比 AWT 图形界面的显示速度慢一些,但相对于快速发展的硬件设施而言,这种微小的速度差别无妨大碍...使用Swing的优势: Swing 组件不再依赖于本地平台的 GUI,无须采用各种平台的 GUI 交集 ,因此 Swing 提供了大量图形界面组件 , 远远超出了 AWT 所提供的图形界面组件集。...Swing的特征: 1.Swing 组件采用 MVC(Model-View-Controller, 即模型一视图一控制器)设计模式: 模型(Model): 用于维护组件的各种状态; 视图(View):...当模型发生改变时,它会通知所有依赖它的视图,视图会根据模型数据来更新自己。Swing使用UI代理来包装视图和控制器, 还有一个模型对象来维护该组件的状态。

    3.3K21

    Java Swing花样玩法:教你用代码制作六一儿童节的精美贺卡(简单版)

    Javaswing这项技术(选读,感兴趣的可以了解一下哈(●'◡'●)) Javaswing是一种基于Java的图形用户界面(GUI)技术,它可以让开发者创建出丰富多彩的桌面应用程序。...Javaswing的架构主要包括以下几个方面:组件、模型、事件、布局和外观。...模型是指Swing组件所依赖的数据结构,如按钮的状态、文本框的内容等,它们都实现了javax.swing.plaf.ComponentUI接口,这个接口定义了组件的基本行为和外观。...事件是指Swing组件所响应的用户操作或系统通知,如鼠标点击、键盘输入等,它们都继承自java.awt.AWTEvent类,并使用了观察者模式来实现事件监听和分发。...Hall出版社),《Java GUI程序设计》(清华大学出版社)。

    63210

    Swing图形界面程序设计.1Swing概述

    Java的图形用户界面由各种组件(component)组成。Java提供了丰富的类库用于GUI设计,这些类分别位于java.awt包和javax.swing包中,简称为AWT和Swing。...为了更好的实现GUI开发,在JDK1.2版本之后新增Swing工具包作为AWT的扩展。...12.1 Swing概述 设计Java图形用户界面的基本元素主要由图形用户界面工具包Swing提供,Swing包是AWT之后一套新的图形用户接口,包括用户界面组件、事件处理模型、图形和图像工具、布局管理器等...Swing是完全使用Java代码编写的,所以同Java本身一样可以跨平台运行,它为大规模的GUI开发提供了丰富的基础结构。...12.1.2 常用Swing组件概述 在Java语言中构成GUI的各类元素称为组件(Component),构建GUI的类可以分为三组:容器类、辅助类和组件类。

    60910

    JDK源码解析之 Java.lang.Package

    Package对象的使用与其他反射类型完全不同,即我们不能在运行时创建或操纵包。我们可以使用Package对象来获取有关包的信息,诸如包的用途、谁创建了包、包的版本等。...java.util 该包提供了包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。...java.sql 该包提供了使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API。 java.awt 这两个包提供了GUI设计与开发的类。...javax.swing是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。...Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行。 java.text 提供了与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。

    75420

    Java Swing 编程全面解析:从 AWT 到 Swing 的进化之路

    前言 Java 提供了强大的图形用户界面(GUI)工具,用于创建跨平台的桌面应用程序。...从早期的 AWT(Abstract Window Toolkit)到更先进的 Swing,Java GUI 编程逐步演进,解决了跨平台一致性、组件丰富性以及性能等问题。...Swing 和 AWT 的主要区别 特性 AWT Swing 组件实现 依赖本地操作系统的组件 纯 Java 实现(轻量级组件) 组件外观 外观由操作系统决定 支持跨平台外观,可自定义 线程模型 非线程安全...六、总结 Java Swing 的出现极大地提升了 Java GUI 编程的能力,它克服了 AWT 的局限,提供了更强大的组件库和更高的灵活性。...在实际开发中,Swing 仍然是构建桌面应用程序的常用工具,尽管随着 JavaFX 的发展,Swing 的使用场景有所减少,但依然是学习 Java GUI 编程的良好起点。

    24110

    2023 年你必须具备的 12 项 Java 开发人员技能...

    模型代表对象,视图提供模型包含的模式或流程图的数据的图形化,并且控制器据说控制两者,即操纵模型或更新视图。...4.Java GUI 框架 框架是帮助开发人员向代码添加附加功能的软件工具,使其工作起来轻松舒适。Java 框架有多种,GUI 框架就是其中之一。GUI是指与客户端直接接触的图形用户界面。...用于此目的的最佳 Java GUI 框架是 AWT、Swing、JavaFX、Apache Pivot 等。了解各种框架并选择最适合您的应用程序的框架是很有好处的。...Swing – Java Swing教程是 Java 基础类 (JFC) 的一部分,用于创建基于窗口的应用程序。它建立在 AWT(抽象窗口工具包)API 之上,完全用 java 编写。...前者支持Java应用程序和JDBC管理器之间的通信,后者支持JDBC管理器和数据库驱动程序之间的通信。有关 JDBC 的知识至关重要,因为它在存储信息和在应用程序中使用信息方面发挥着关键作用。

    1.2K50

    气球飘飘:用Java Swing创造令人心旷神怡的视觉奇观

    ✨简单介绍一下Javaswing这项技术简单介绍一下Javaswing这项技术(选读,感兴趣的可以了解一下哈(●'◡'●)) Javaswing是一种基于Java的图形用户界面(GUI)技术,它可以让开发者创建出丰富多彩的桌面应用程序...Swing最初是作为一个可选的扩展包提供的,后来在1998年被集成到了Java 2平台中,并成为了Java标准图形用户界面技术。...模型是指Swing组件所依赖的数据结构,如按钮的状态、文本框的内容等,它们都实现了javax.swing.plaf.ComponentUI接口,这个接口定义了组件的基本行为和外观。...事件是指Swing组件所响应的用户操作或系统通知,如鼠标点击、键盘输入等,它们都继承自java.awt.AWTEvent类,并使用了观察者模式来实现事件监听和分发。...Hall出版社),《Java GUI程序设计》(清华大学出版社)。

    41610

    java GUI 快速入门

    java 中编写 GUI 有两中工具包,分别为 AWT、Swing。 Swing 是 AWT 的拓展,Swing 具有比 AWT 丰富的组件和方法。...AWT 和 Swing 都能跨平台使用;AWT 会随着不同的系统平台,UI 样式会有所变化,Swing 则不会,设计完毕后在所有平台下样式一致。...import java.awt.*; import javax.swing.*; 一个 awt 示例 下面是一个窗口示例 import java.awt.*; public class MyFrame...事件 java 中,事件分为三个方面描述, 事件源:发生事件的对象 事件处理:委托事件处理模型 事件监听者:负责处理事件 ? 首先B监听A,设置监听的内容,并设置响应内容。...组件方法 如图是 GUI 控件中常用的控件关系继承图。 ? 组件分为容器(Container)和控件。 容器又分为窗体(Window)和面板(Panel)。

    2.3K40

    23 Java 图形化编程

    而本章介绍的Java图形用户界面技术是基于Java SE 的 Swing,事实上它们在实际应用中使用不多,因此本章的内容只做了解。...Swing Swing是Java主要的图形用户界面技术,Swing提供跨平台的界面风格,用户可以自定义Swing的界面风格。Swing提供了比AWT更完整的组件,引入了许多新的特性。...Swing API是围绕着实现AWT各个部分的API构筑的。Swing是由100%纯Java实现的,Swing组件没有本地代码,不依赖操作系统的支持,这是它与AWT组件的最大区别。...Swing技术基础 AWT是Swing的基础,Swing事件处理和布局管理都是依赖于AWT,AWT内容来自java.awt包,Swing内容来自javax.swing包。...Swing容器类层次结构 Swing组件类层次结构 事件处理模型 图形界面的组件要响应用户操作,就必须添加事件处理机制。Swing采用AWT的事件处理模型进行事件处理。

    3.6K20

    Java(JDK)安装包介绍,常见命令,下载方法,安装方法,新版本没有jre问题,为什么要配置环境变量

    java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。...java.beans 包含与开发 beans 有关的类,即基于 JavaBeansTM 架构的组件。 java.beans.beancontext 提供与 bean 上下文有关的类和接口。...java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。...javax.imageio.event Java Image I/O API 的一个包,用于在读取和写入图像期间处理事件的同步通知。...org.w3c.dom 为文档对象模型 (DOM) 提供接口,该模型是 Java API for XML Processing 的组件 API。

    2.8K20

    JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener

    要熟悉基本焦点概念或获取有关焦点的详细信息,请参阅如何使用焦点子系统。 本节说明如何通过在特定组件上注册FocusListener实例来获取焦点事件。...要获取许多组件的焦点状态,请考虑在KeyboardFocusManager类上实现PropertyChangeListener实例,如如何使用焦点子系统中的将焦点更改跟踪到多个组件中所述。...注册在每个组件上的焦点侦听器报告每个焦点获得和焦点丢失的事件。对于每个事件,将报告焦点更改中涉及的其他组件,即相反的组件。...java.awt.event.*; import javax.swing.*; public class FocusEventDemo extends JFrame implements...* Use an appropriate Look and Feel */ try { //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel

    6.3K10

    Java 多线程实战:图形界面下的并发任务管理

    一、前言:为何要在 GUI 中使用多线程?在 Java GUI 应用中,如若耗时任务(如网络下载、大量计算)直接运行在主线程中,会导致界面“卡死”或无响应。解决办法?引入多线程!...二、图解:Java GUI 多线程基本模型 主线程与后台线程关系图less复制编辑[事件分发线程 (EDT)] -- 用户交互与界面更新 | +--> [Worker 线程...六、线程安全问题与 UI 更新Swing 并不是线程安全的,不能在后台线程直接调用 UI 组件。...十、总结与建议你学到了什么:✅ Java 多线程基础和三种创建方式 ✅ Swing 中使用线程更新 UI 的正确方式 ✅ 使用 SwingWorker 安全管理后台任务 ✅ 实战案例:进度条、下载器、并发处理...✅ 线程池、定时器、线程中断机制推荐练习 用多线程实现倒计时器 构建一个并发爬虫 GUI 应用(伪链接测试即可) 创建多窗口 + 线程互动的聊天室模拟界面

    26310
    领券