Java 中文官方教程 2022 版(十四)(2)

简介: Java 中文官方教程 2022 版(十四)

Java 中文官方教程 2022 版(十四)(1)https://developer.aliyun.com/article/1486371

关键语句已用粗体标出。其他语句用于错误处理。

一旦JarRunner确定了应用程序的入口点类,只剩下两个步骤:将任何参数传递给应用程序并实际启动应用程序。JarRunner使用以下代码执行这些步骤:

// Get arguments for the application
String[] newArgs = new String[args.length - 1];
System.arraycopy(args, 1, newArgs, 0, newArgs.length);
// Invoke application's main class
try {
    cl.invokeClass(name, newArgs);
} catch (ClassNotFoundException e) {
    fatal("Class not found: " + name);
} catch (NoSuchMethodException e) {
    fatal("Class does not define a 'main' method: " + name);
} catch (InvocationTargetException e) {
    e.getTargetException().printStackTrace();
    System.exit(1);
}

回想一下,第一个命令行参数是 JAR 捆绑应用程序的 URL。因此,要传递给该应用程序的任何参数都在args数组中的元素1及以后。JarRunner获取这些元素,并创建一个名为newArgs的新数组传递给应用程序(上面的粗体行)。然后,JarRunner将入口点的类名和新参数列表传递给JarClassLoaderinvokeClass方法。正如我们在前一节中看到的,invokeClass将加载应用程序的入口点类,传递任何参数,并启动应用程序。

问题和练习:JAR

原文:docs.oracle.com/javase/tutorial/deployment/jar/QandE/questions.html

问题

  1. 如何调用打包为 JAR 文件的小程序?
  2. -e 选项在 jar 命令中的目的是什么?
  3. JAR 文件中 MANIFEST 的重要性是什么?
  4. 如何修改 JAR 的 MANIFEST 文件?

检查你的答案。

教程:使用 Swing 创建 GUI

原文:docs.oracle.com/javase/tutorial/uiswing/index.html

也被称为Swing 教程

本教程告诉您如何为应用程序和小程序创建图形用户界面(GUI),使用 Swing 组件。如果您想将 JavaFX 集成到您的 Swing 应用程序中,请参阅将 JavaFX 集成到 Swing 应用程序中

是一个快速入门课程。首先它为您提供了关于 Swing 的一些背景知识。然后告诉您如何编译和运行使用 Swing 组件的程序。

是开始使用 Swing 的最快最简单的方法。本课程探讨了 NetBeans IDE 的 GUI 构建器,这是一个强大的功能,让您可以直观地构建您的图形用户界面。

告诉您如何使用 Swing 组件中的每个部分 — 按钮、表格、文本组件等等。它还告诉您如何使用边框和图标。

讨论了并发如何应用于 Swing 编程。包括有关事件分派线程和 SwingWorker 类的信息。

告诉您如何使用动作、定时器和系统托盘;如何与桌面类集成,如何支持辅助技术,如何打印表格和文本,如何创建启动画面,以及如何在对话框中使用模态。

告诉您如何选择布局管理器,如何使用 Java 平台提供的每个布局管理器类,如何使用绝对定位而不是布局管理器,以及如何创建自己的布局管理器。

告诉您如何指定 Swing 组件的外观和感觉。

告诉您实现应用程序中数据传输所需的知识。

告诉您如何在程序中处理事件。

提供了关于绘制自己的 Swing 组件的信息。它讨论了特定于 Swing 组件的绘制问题,概述了绘制概念,并提供了自定义组件自行绘制的示例。

其他与 UI 相关的路径

虽然这是学习 GUI 的主要路径,但并不是唯一涉及 UI 相关信息的路径。

  • 2D 图形,描述了 JDK 中可用的 2D 图形功能。
  • 声音,讨论了 JDK 中可用的声音功能。
  • Java Applets,描述了仅适用于小程序的 API。
  • 基本 Java 类,涵盖了许多主题,包括属性和标准 I/O 流。
  • JavaFX 文档,描述了如何使用 JavaFX 构建 UI。
  • Bonus 路径包含 全屏独占模式 API,这是一个介绍如何使用 v1.4 中引入的 API 直接向屏幕渲染图形的课程。

课程:开始使用 Swing

原文:docs.oracle.com/javase/tutorial/uiswing/start/index.html

示例索引

这节课简要介绍了如何使用 Swing。在介绍 Swing 之后,它会带领你编译和运行一个使用 Swing 包的程序。

接下来的课程,使用 NetBeans IDE 学习 Swing,将在这些第一步的基础上构建,帮助你创建几个逐渐复杂的示例。现在,让我们从基础知识开始。

关于 JFC 和 Swing

这部分为你提供了 Swing 的概述。

编译和运行 Swing 程序

这部分为你提供了详细的说明,告诉你从哪里获取最新的 JDK,以及如何创建、编译和运行使用 Swing 组件的程序。

如果你有兴趣使用 JavaFX 包来创建你的 UI,请查看JavaFX 文档。要部署,请参阅Java 平台标准版部署指南

关于 JFC 和 Swing

原文:docs.oracle.com/javase/tutorial/uiswing/start/about.html

JFC 是 Java Foundation Classes 的缩写,它包含了一组用于构建图形用户界面(GUI)和为 Java 应用程序添加丰富的图形功能和交互性的特性。它被定义为包含下表所示的特性。

功能 描述
Swing GUI 组件 包括从按钮到分割窗格到表格的所有内容。许多组件能够进行排序、打印和拖放等功能,这只是支持的功能之一。
Pluggable Look-and-Feel Support Swing 应用程序的外观和感觉是可插拔的,允许选择外观和感觉。例如,同一个程序可以使用 Java 或 Windows 外观和感觉。此外,Java 平台支持 GTK+ 外观和感觉,使得数百种现有的外观和感觉可用于 Swing 程序。许多其他外观和感觉包可以从各种来源获取。
Accessibility API 允许辅助技术,如屏幕阅读器和盲文显示器,从用户界面获取信息。
Java 2D API 允许开发人员在应用程序和小程序中轻松地整合高质量的 2D 图形、文本和图像。Java 2D 包括广泛的 API,用于生成和发送高质量的输出到打印设备。
国际化 允许开发人员构建可以与全球用户以其自己的语言和文化习俗交互的应用程序。借助输入法框架,开发人员可以构建接受使用数千个不同字符的语言(如日语、中文或韩语)的文本的应用程序。

本教程集中讨论 Swing 组件。我们将帮助您选择适合您的 GUI 的组件,告诉您如何使用它们,并为您提供使用它们的有效背景信息。我们还将讨论其他与 Swing 组件相关的功能。

我应该使用哪些 Swing 包?

Swing API 强大、灵活 —— 也是庞大的。Swing API 有 18 个公共包:

javax.accessibility javax.swing.plaf javax.swing.text
javax.swing javax.swing.plaf.basic javax.swing.text.html
javax.swing.border javax.swing.plaf.metal javax.swing.text.html.parser
javax.swing.colorchooser javax.swing.plaf.multi javax.swing.text.rtf
javax.swing.event javax.swing.plaf.synth javax.swing.tree
javax.swing.filechooser javax.swing.table javax.swing.undo

幸运的是,大多数程序只使用 API 的一个小子集。本教程为您整理了 API,为您提供常见代码示例,并指导您可能需要的方法和类。本教程中的大部分代码仅使用一个或两个 Swing 包:

  • javax.swing
  • javax.swing.event(不总是必需的)

编译和运行 Swing 程序

原文:docs.oracle.com/javase/tutorial/uiswing/start/compile.html

本节介绍如何从命令行编译和运行一个 Swing 应用程序。有关使用 NetBeans IDE 编译和运行 Swing 应用程序的信息,请参阅在 NetBeans IDE 中运行教程示例。编译说明适用于所有 Swing 程序 — 包括小程序和应用程序。以下是你需要遵循的步骤:

  • 如果你还没有安装最新版本的 Java SE 平台,那么现在就安装吧。
  • 创建一个使用 Swing 组件的程序。
  • 编译程序。
  • 运行程序。

安装最新版本的 Java SE 平台

你可以免费从www.oracle.com/technetwork/java/javase/downloads/index.html下载 JDK 的最新版本。

创建一个使用 Swing 组件的程序

你可以使用我们提供的一个简单程序,名为 HelloWorldSwing,它会显示如下图所示的 GUI。该程序在一个单独的文件中,HelloWorldSwing.java。当你保存这个文件时,你必须确保其名称的拼写和大小写完全匹配。

HelloWorldSwing.java示例,就像我们所有的 Swing 教程示例一样,都是在一个包内创建的。如果你查看源代码,你会在文件开头看到以下行:

package start;

这意味着你必须将HelloWorldSwing.java文件放在start目录内。你需要从start目录的上一级目录编译和运行示例。使用 Swing 组件课程中的教程示例位于components包内,编写事件监听器课程中的示例位于events包内,依此类推。更多信息,你可能想看看Packages课程。

编译程序

你的下一步是编译程序。要编译示例,从HelloWorldSwing.java文件的上一级目录开始:

javac start/HelloWorldSwing.java

如果你愿意,你可以在start目录中编译示例:

javac HelloWorldSwing.java

但是你必须记住离开start目录才能执行程序。

如果你无法编译,请确保你正在使用 Java 平台的最新版本中的编译器。你可以使用以下命令验证你的编译器或 Java 运行环境(JRE)的版本。

javac -version
java -version

更新了 JDK 后,你应该可以在不进行任何更改的情况下使用本教程中的程序。另一个常见错误是安装了 JRE 而不是编译这些程序所需的完整 Java 开发工具包(JDK)。请参考入门指南来帮助你解决遇到的任何编译问题。另一个资源是Java™ SE 6 桌面技术故障排除指南

运行程序

编译程序成功后,你可以运行它。从start目录的上一级目录开始:

java start.HelloWorldSwing

课程:使用 NetBeans IDE 学习 Swing

原文:docs.oracle.com/javase/tutorial/uiswing/learn/index.html

示例索引

本课程介绍了使用 Swing 和 NetBeans IDE 进行图形用户界面(GUI)编程。正如您在"Hello World!"课程中学到的,NetBeans IDE 是一个免费的、开源的、跨平台的集成开发环境,内置支持 Java 编程语言。与使用文本编辑器编码相比,它提供了许多优势;我们建议尽可能使用它。如果您还没有阅读上述课程,请立即花点时间阅读。它提供了有关下载和安装 JDK 和 NetBeans IDE 的宝贵信息。

本课程的目标是通过设计一个简单的应用程序,将温度从摄氏度转换为华氏度来介绍 Swing API。其 GUI 将是基本的,只关注可用的 Swing 组件的子集。我们将使用 NetBeans IDE GUI 构建器,它使用户界面的创建变得简单易行,只需拖放即可。其自动生成代码功能简化了 GUI 开发过程,让您可以专注于应用程序逻辑,而不是底层基础设施。

因为这节课是一个逐步检查特定操作的清单,我们建议您运行 NetBeans IDE,并在阅读过程中执行每个步骤。这将是开始使用 Swing 进行编程的最快最简单的方法。如果您无法这样做,仅仅阅读也应该是有用的,因为每个步骤都有截图说明。

如果您更喜欢传统的手动编程每个组件的方法(不使用 IDE 的帮助),请将这节课视为进入已经在教程其他地方提供的低级讨论的入口点。每个讨论中的超链接将带您前往相关课程,如果您希望学习这些低级细节。

该应用程序的完成 GUI 将如下所示:

CelsiusConverter 应用程序。

单击“启动”按钮以使用Java™ Web Start运行 CelsiusConverter(下载 JDK 7 或更高版本)。或者,要自行编译和运行示例,请参考示例索引。


从最终用户的角度来看,使用方法很简单:在文本框中输入温度(摄氏度),点击“转换”按钮,然后观看转换后的温度(华氏度)显示在屏幕上。最小化、最大化和关闭按钮将按预期运行,并且应用程序还将在窗口顶部显示一个标题。

从程序员的角度来看,我们将应用程序分为两个主要阶段。首先,我们将用各种 Swing 组件填充 GUI 并按照上面显示的方式排列它们。然后,我们将添加应用程序逻辑,以便当用户按下“转换”按钮时,程序实际执行转换操作。

如果你有兴趣使用 JavaFX 来创建你的 GUI,请查看JavaFX 文档JavaFX - NetBeans Wiki

设置 CelsiusConverter 项目

原文:docs.oracle.com/javase/tutorial/uiswing/learn/settingup.html

如果您以前使用过 NetBeans IDE,那么本节的大部分内容看起来会很熟悉,因为最初的步骤对大多数项目都是相似的。不过,接下来的步骤描述了特定于此应用程序的设置,因此请务必仔细遵循。

步骤 1:创建一个新项目

要创建一个新项目,请启动 NetBeans IDE 并从“文件”菜单中选择“新项目”:

创建一个新项目

每个命令的键盘快捷键显示在每个菜单项的最右侧。NetBeans IDE 的外观和感觉可能在不同平台上有所不同,但功能将保持不变。

步骤 2:选择 General -> Java Application

接下来,从类别列中选择“General”,从项目列中选择“Java Application”:


*此图已经缩小以适应页面。

点击图像以查看其自然大小。*

您可能会在描述窗格中看到“J2SE”的提及;那是现在被称为“Java SE”平台的旧名称。按下标有“下一步”的按钮继续。

步骤 3:设置项目名称

现在将“CelsiusConverterProject”输入为项目名称。您可以将项目位置和项目文件夹字段保留为默认值,或者单击“浏览”按钮选择系统上的其他位置。


*此图已经缩小以适应页面。

点击图像以查看其自然大小。*

确保取消选中“创建主类”复选框;保留此选项会生成一个新类作为应用程序的主入口点,但我们的主 GUI 窗口(在下一步中创建)将担任此职责,因此不需要选中此框。完成后点击“完成”按钮。


*此图已经缩小以适应页面。

点击图像以查看其自然大小。*

当 IDE 完成加载时,您将看到类似上述的屏幕。所有窗格都将为空,除了左上角的项目窗格,显示了新创建的项目。

步骤 4:添加一个 JFrame 表单


*此图已经缩小以适应页面。

点击图像以查看其自然大小。*

现在右键点击CelsiusConverterProject名称,选择 New -> JFrame Form(JFrame是负责应用程序主窗体的 Swing 类)。你将在本课程后面学习如何将这个类指定为应用程序的入口点。

步骤 5:命名 GUI 类

接下来,将CelsiusConverterGUI作为类名,learn作为包名。实际上,你可以将这个包命名为任何你想要的名称,但在这里我们遵循教程的惯例,将包命名为所在课程的名称。


*此图已经缩小以适应页面。

点击图片查看其原始大小。*

其余字段应自动填写,如上所示。完成后点击 Finish 按钮。


*此图已经缩小以适应页面。

点击图片查看其原始大小。*

当 IDE 加载完成时,右侧窗格将显示CelsiusConverterGUI的设计时、图形化视图。在这个屏幕上,你将可以直观地拖放和操作各种 Swing 组件。

NetBeans IDE 基础知识

原文:docs.oracle.com/javase/tutorial/uiswing/learn/netbeansbasics.html

在探索 NetBeans IDE 的 GUI 创建功能之前,不需要学习其每个功能。实际上,您真正需要理解的只有调色板设计区域属性编辑器检查器。我们将在下面讨论这些功能。

调色板

调色板包含 Swing API 提供的所有组件。即使这是您第一次使用它们(JLabel 是文本标签,JList 是下拉列表等),您也可能已经猜到许多这些组件的用途。


*此图已经缩小以适应页面。

单击图像以查看其自然大小。*

从此列表中,我们的应用程序仅使用JLabel(基本文本标签)、JTextField(用户输入温度)和JButton(将温度从摄氏度转换为华氏度)。

设计区域

设计区域是您将视觉构建 GUI 的地方。它有两个视图:源视图设计视图。设计视图是默认视图,如下所示。您可以随时通过单击它们各自的选项卡切换视图。


*此图已经缩小以适应页面。

单击图像以查看其自然大小。*

上图显示了一个JFrame对象,由带有蓝色边框的大阴影矩形表示。IDE 自动生成常见的预期行为(例如在用户单击“关闭”按钮时退出)并显示在源代码视图中,位于称为受保护块的不可编辑蓝色代码块之间。


*此图已经缩小以适应页面。

单击图像以查看其自然大小。*

从源代码视图快速查看可以发现,IDE 创建了一个名为initComponents的私有方法,用于初始化 GUI 的各个组件。它还告诉应用程序在关闭时“退出”,执行一些特定于布局的任务,然后将(即将添加的)组件打包在屏幕上。

不必详细了解此代码;我们在这里提到它只是为了探索源选项卡。有关这些组件的更多信息,请参见:

如何创建框架(主窗口) 和 在容器内布局组件。

属性编辑器

属性编辑器的功能如其名称所示:它允许您编辑每个组件的属性。属性编辑器易于使用;您将看到一系列行 - 每个属性一行 - 您可以单击并编辑,而无需直接输入源代码。以下图显示了新添加的JFrame对象的属性编辑器:


*此图已缩小以适应页面。

单击图像以查看其自然大小。

上面的截图显示了此对象的各种属性,如背景颜色、前景颜色、字体和光标。

检查器

在本课程中我们将使用 NetBeans IDE 的最后一个组件是检查器:

检查器

检查器提供了应用程序组件的图形表示。我们只会使用检查器一次,将一些变量名称更改为非默认名称。

创建 CelsiusConverter GUI

原文:docs.oracle.com/javase/tutorial/uiswing/learn/creatinggui.html

本节介绍如何使用 NetBeans IDE 创建应用程序的 GUI。当您将每个组件从工具栏拖动到设计区域时,IDE 会自动生成适当的源代码。

步骤 1:设置标题

首先,通过在检查器中单击JFrame来将应用程序的JFrame的标题设置为“摄氏度转换器”:

选择 JFrame

然后,使用属性编辑器设置其标题:

设置标题

您可以通过双击标题属性并直接输入新文本,或单击 按钮并在提供的字段中输入标题来设置标题。或者,作为快捷方式,您可以单击检查器中的JFrame并直接输入其新文本,而无需使用属性编辑器。

步骤 2:添加一个 JTextField

接下来,从工具栏拖动一个JTextField到设计区域的左上角。当接近左上角时,GUI 构建器会提供视觉线索(虚线),提示适当的间距。根据这些线索指导,将JTextField放置在窗口的左上角,如下所示:

添加一个 JTextField

您可能会想要删除默认文本“JTextField1”,但现在就让它保持原样。稍后在本课程中,随着对每个组件的最终调整,我们将替换它。有关此组件的更多信息,请参见如何使用文本字段。

步骤 3:添加一个 JLabel

接下来,在设计区域拖动一个JLabel。将其放置在JTextField的右侧,再次注意视觉线索,以确定适当的间距。确保此组件的文本基线与JTextField的文本基线对齐。IDE 提供的视觉线索应该很容易确定。

添加一个 JLabel

有关此组件的更多信息,请参见如何使用标签。

步骤 4:添加一个 JButton

接下来,从工具栏拖动一个JButton并将其放置在JTextField的左侧和下方。再次,视觉线索有助于将其放置在正确的位置。

添加一个 JButton

你可能会想要手动调整JButtonJTextField的宽度,但现在就让它们保持原样。稍后在本课程中,您将学习如何正确调整这些组件。有关此组件的更多信息,请参见如何使用按钮。


Java 中文官方教程 2022 版(十四)(3)https://developer.aliyun.com/article/1486378

相关文章
|
2天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
31 10
|
2天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(<https://www.sojump.com/m/2792226.aspx/>)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
25 0
|
18小时前
|
算法 Java Python
保姆级Java入门练习教程,附代码讲解,小白零基础入门必备
保姆级Java入门练习教程,附代码讲解,小白零基础入门必备
|
22小时前
|
Web App开发 JavaScript 测试技术
《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
【5月更文挑战第9天】本文介绍了在Appium中处理App自动化测试中遇到的Toast元素定位的方法。Toast在Web UI测试中也常见,通常作为轻量级反馈短暂显示。文章提供了两种定位Toast元素的技巧.
10 0
|
2天前
|
Web App开发 缓存 前端开发
《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
【5月更文挑战第8天】这篇文档介绍了如何在IE、Chrome和Firefox浏览器中处理不信任证书的问题。作者北京-宏哥分享了如何通过编程方式跳过浏览器的证书警告,直接访问不受信任的HTTPS网站。文章分为几个部分,首先简要介绍了问题背景,然后详细讲解了在Chrome浏览器中的两种方法,包括代码设计和运行效果,并给出了其他浏览器的相关信息和参考资料。最后,作者总结了处理此类问题的一些通用技巧。
16 2
|
2天前
|
Java Android开发
【Java开发指南 | 第十八篇】Eclipse安装教程
【Java开发指南 | 第十八篇】Eclipse安装教程
11 2
|
2天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
13 1
|
2天前
|
前端开发 Java 测试技术
《手把手教你》系列技巧篇(四十二)-java+ selenium自动化测试 - 处理iframe -下篇(详解教程)
【5月更文挑战第6天】本文介绍了如何使用Selenium处理含有iframe的网页。作者首先解释了iframe是什么,即HTML中的一个框架,用于在一个页面中嵌入另一个页面。接着,通过一个实战例子展示了在QQ邮箱登录页面中,由于输入框存在于iframe内,导致直接定位元素失败。作者提供了三种方法来处理这种情况:1)通过id或name属性切换到iframe;2)使用webElement对象切换;3)通过索引切换。最后,给出了相应的Java代码示例,并提醒读者根据iframe的实际情况选择合适的方法进行切换和元素定位。
9 0
|
2天前
|
前端开发 测试技术 Python
《手把手教你》系列技巧篇(四十一)-java+ selenium自动化测试 - 处理iframe -上篇(详解教程)
【5月更文挑战第5天】本文介绍了HTML中的`iframe`标签,它用于在网页中嵌套其他网页。`iframe`常用于加载外部内容或网站的某个部分,以实现页面美观。文章还讲述了使用Selenium自动化测试时如何处理`iframe`,通过`switchTo().frame()`方法进入`iframe`,完成相应操作,然后使用`switchTo().defaultContent()`返回主窗口。此外,文章提供了一个包含`iframe`的HTML代码示例,并给出了一个简单的自动化测试代码实战,演示了如何在`iframe`中输入文本。
17 3
|
2天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
【5月更文挑战第4天】本文介绍了如何使用JavaScriptExecutor在自动化测试中实现元素高亮显示。通过创建并执行JS代码,可以改变元素的样式,例如设置背景色和边框,以突出显示被操作的元素。文中提供了一个Java示例,展示了如何在Selenium中使用此方法,并附有代码截图和运行效果展示。该技术有助于跟踪和理解测试过程中的元素交互。
10 0