JavaFX 实现 Loading 效果的组件与案例详解
JavaFX 中的 Loading 组件概述
JavaFX 提供了两个用于显示任务进度的核心组件:
ProgressIndicator
:以圆形动画的形式展示任务进度,适用于未定义进度的任务。ProgressBar
:以水平条的形式展示任务进度,适用于可以量化进度的任务。
这两个组件可直接绑定到后台任务的 progress
属性,实时更新界面。
1. ProgressBar 的常见方法
ProgressBar
是以 水平条 的形式显示任务进度,适用于可量化的任务。
1.1 构造方法
ProgressBar()
创建一个初始进度为 0 的进度条。ProgressBar(double progress)
创建一个指定初始进度的进度条。- 参数
progress
:范围为[0.0, 1.0]
,表示百分比进度。
- 参数
1.2 常用方法
方法名 | 说明 | 示例 |
---|---|---|
setProgress(double value) | 设置进度条的进度值。value 范围为 [0.0, 1.0] ,-1 表示不确定的进度(类似于加载动画)。 | progressBar.setProgress(0.5); |
getProgress() | 获取当前进度条的进度值。 | double progress = progressBar.getProgress(); |
progressProperty() | 返回一个 DoubleProperty ,可以用于绑定任务的进度属性。 | progressBar.progressProperty().bind(task.progressProperty()); |
1.3 样式方法
方法名 | 说明 | 示例 |
---|---|---|
setStyle(String style) | 设置进度条的 CSS 样式。可以自定义进度条的外观。 | progressBar.setStyle("-fx-accent: green;"); |
1.4 使用示例
ProgressBar progressBar = new ProgressBar();
progressBar.setProgress(0.5); // 设置进度为50%
progressBar.setStyle("-fx-accent: blue;"); // 将进度条颜色设置为蓝色
2. ProgressIndicator 的常见方法
ProgressIndicator
以 圆形动画 的形式显示任务进度,适用于未定义具体进度的任务(如等待加载)。
2.1 构造方法
ProgressIndicator()
创建一个初始进度为 不确定状态 的指示器。ProgressIndicator(double progress)
创建一个指定初始进度的指示器。
2.2 常用方法
方法名 | 说明 | 示例 |
---|---|---|
setProgress(double value) | 设置指示器的进度值,value 范围为 [0.0, 1.0] ,-1 表示不确定的进度状态(默认值)。 | progressIndicator.setProgress(-1); |
getProgress() | 获取当前指示器的进度值。 | double progress = progressIndicator.getProgress(); |
progressProperty() | 返回一个 DoubleProperty ,可以用于绑定任务的进度属性。 | progressIndicator.progressProperty().bind(task.progressProperty()); |
2.3 样式方法
方法名 | 说明 | 示例 |
---|---|---|
setStyle(String style) | 设置指示器的 CSS 样式。可以自定义指示器的外观。 | progressIndicator.setStyle("-fx-accent: red;"); |
2.4 使用示例
ProgressIndicator progressIndicator = new ProgressIndicator();
progressIndicator.setProgress(-1); // 设置为不确定状态
progressIndicator.setStyle("-fx-accent: green;"); // 设置指示器颜色为绿色
3. 常见方法对比
功能 | ProgressBar | ProgressIndicator |
---|---|---|
表示形式 | 水平条形进度 | 圆形指示器 |
初始进度 | 默认 0.0 | 默认 -1(不确定进度) |
绑定支持 | 支持绑定任务的 progressProperty() | 支持绑定任务的 progressProperty() |
适用场景 | 可量化的任务进度 | 未量化的任务(如加载等待) |
进度状态 | 进度条会逐步增长 | 圆形动画逐步覆盖 |
4. 常见问题及解决方案
4.1 界面卡顿问题
问题原因:
在 JavaFX 中,所有 UI 更新都运行在单线程模式下。如果后台任务运行在 UI 线程,会导致界面卡顿。
解决方案:
- 使用
Task
将后台任务与 UI 线程分离。 - 确保耗时操作(如数据库查询)在
Task
的call
方法中执行。
4.2 动画流畅性问题
问题原因:
任务更新过于频繁,导致 UI 线程处理不过来。
解决方案:
- 限制更新频率,例如每 10% 更新一次进度:
if (i % (NUM_TASKS / 10) == 0) {updateProgress(i, NUM_TASKS);
}
4.3 异常处理问题
问题原因:
任务执行时可能抛出异常,导致应用崩溃。
解决方案:
- 在任务的
setOnFailed
方法中处理异常:
task.setOnFailed(event -> {Throwable exception = task.getException();System.err.println("Task failed: " + exception.getMessage());
});
4.4 停止任务
问题原因:
用户可能需要取消任务,但未正确处理会导致资源泄漏。
解决方案:
- 使用
Task
的cancel
方法并处理中断:
if (isCancelled()) {updateMessage("Task cancelled.");break;
}
5.完整案例示范
Maven 依赖
确保 JavaFX 的依赖正确引入(适配 JavaFX 21 和 JDK 8):
<dependencies><dependency><groupId>org.openjfx</groupId><artifactId>javafx-controls</artifactId><version>21</version></dependency><dependency><groupId>org.openjfx</groupId><artifactId>javafx-base</artifactId><version>21</version></dependency>
</dependencies>
核心代码
import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class ReloadableLoadingExample extends Application {private final ExecutorService threadPool = Executors.newFixedThreadPool(5);@Overridepublic void start(Stage primaryStage) {// 主界面组件ProgressBar progressBar = new ProgressBar(0);ProgressIndicator progressIndicator = new ProgressIndicator(0);Button startButton = new Button("Start Loading");Label statusLabel = new Label("Click 'Start Loading' to begin.");VBox content = new VBox(10, startButton, statusLabel, progressBar, progressIndicator);content.setStyle("-fx-padding: 20; -fx-alignment: center;");// 隐藏进度条和指示器progressBar.setVisible(false);progressIndicator.setVisible(false);// 遮罩层StackPane overlay = createOverlay(content);overlay.setVisible(false); // 默认隐藏遮罩层// 主界面StackPane root = new StackPane(content, overlay);Scene scene = new Scene(root, 400, 250);// 启动任务按钮startButton.setOnAction(event -> {// 禁用按钮,显示遮罩和进度条startButton.setDisable(true);overlay.setVisible(true);progressBar.setVisible(true);progressIndicator.setVisible(true);// 创建任务Task<Void> task = createLoadingTask(statusLabel);// 重置进度和状态progressBar.progressProperty().unbind();progressIndicator.progressProperty().unbind();progressBar.setProgress(0);progressIndicator.setProgress(0);// 绑定任务进度progressBar.progressProperty().bind(task.progressProperty());progressIndicator.progressProperty().bind(task.progressProperty());// 提交任务到线程池threadPool.submit(task);// 任务完成时的处理task.setOnSucceeded(e -> {overlay.setVisible(false);startButton.setDisable(false);progressBar.setVisible(false);progressIndicator.setVisible(false);showAlert(Alert.AlertType.INFORMATION, "Task Completed", "The task completed successfully!");});// 任务失败时的处理task.setOnFailed(e -> {overlay.setVisible(false);startButton.setDisable(false);progressBar.setVisible(false);progressIndicator.setVisible(false);showAlert(Alert.AlertType.ERROR, "Task Failed", "An error occurred: " + task.getException().getMessage());});// 任务取消时的处理task.setOnCancelled(e -> {overlay.setVisible(false);startButton.setDisable(false);progressBar.setVisible(false);progressIndicator.setVisible(false);showAlert(Alert.AlertType.WARNING, "Task Cancelled", "The task was cancelled.");});});primaryStage.setScene(scene);primaryStage.setTitle("Reloadable JavaFX Loading Example");primaryStage.show();}/*** 创建任务*/private Task<Void> createLoadingTask(Label statusLabel) {return new Task<Void>() {private static final int TOTAL_WORK = 100;@Overrideprotected Void call() throws Exception {for (int i = 1; i <= TOTAL_WORK; i++) {if (isCancelled()) {updateMessage("Task cancelled.");break;}// 模拟任务执行Thread.sleep(50);// 更新进度和状态updateProgress(i, TOTAL_WORK);updateMessage("Progress: " + i + "/" + TOTAL_WORK);}if (!isCancelled()) {updateMessage("Task completed successfully!");}return null;}@Overrideprotected void updateMessage(String message) {// 界面线程中更新状态javafx.application.Platform.runLater(() -> statusLabel.setText(message));}};}/*** 创建遮罩层*/private StackPane createOverlay(Region parent) {Rectangle overlayRectangle = new Rectangle();overlayRectangle.setFill(Color.rgb(0, 0, 0, 0.3));overlayRectangle.widthProperty().bind(parent.widthProperty());overlayRectangle.heightProperty().bind(parent.heightProperty());Label loadingLabel = new Label("Loading...");loadingLabel.setStyle("-fx-font-size: 16px; -fx-text-fill: white;");StackPane overlay = new StackPane(overlayRectangle, loadingLabel);overlay.setAlignment(Pos.CENTER);return overlay;}/*** 显示提示信息*/private void showAlert(Alert.AlertType alertType, String title, String content) {Alert alert = new Alert(alertType);alert.setTitle(title);alert.setContentText(content);alert.showAndWait();}@Overridepublic void stop() {threadPool.shutdownNow();}public static void main(String[] args) {launch(args);}
}
相关文章:
JavaFX 实现 Loading 效果的组件与案例详解
JavaFX 中的 Loading 组件概述 JavaFX 提供了两个用于显示任务进度的核心组件: ProgressIndicator:以圆形动画的形式展示任务进度,适用于未定义进度的任务。ProgressBar:以水平条的形式展示任务进度,适用于可以量化进…...
Elasticsearch:如何部署文本嵌入模型并将其用于语义搜索
你可以按照这些说明在 Elasticsearch 中部署文本嵌入模型,测试模型并将其添加到推理提取管道。它使你能够生成文本的向量表示并对生成的向量执行向量相似性搜索。示例中使用的模型在 HuggingFace上公开可用。 该示例使用来自 MS MARCO Passage Ranking Task 的公共…...
李继刚:提示词(Prompt)的本质是表达的艺术
看了李继刚在 AI 创新者大会的演讲《提示词的道与术》,收获很大,我分享一下学习笔记。 李继刚:提示词(Prompt)的本质是表达的艺术 一、提示词的本质是表达 本意、文意和解意的概念: 本意:指…...
10 —— Webpack打包模式
开发模式:development ;场景:本地开发 生产模式:production ; 场景:打包上线 这两种模式如何设置给webpack: 方式1.webpack.config.js 配置文件设置mode选项 module.exports { mode:produc…...
OpenSSH 安装
OpenSSH windows安装 启用可选功能安装 OpenSSH(推荐方法) 步骤一:打开 “设置” 应用 点击 “开始” 菜单,选择 “设置” 图标(看起来像一个齿轮)。 步骤二:进入 “应用” 部分 在设置窗口中&…...
国标GB28181设备管理软件EasyGBS国标GB28181视频平台:RTMP和GB28181两种视频上云协议的区别
在当今信息化高速发展的社会中,视频监控技术已经成为各行各业不可或缺的一部分。无论是城市安全、交通管理,还是企业安全、智能家居,视频监控都发挥着至关重要的作用。然而,随着监控点数量的急剧增加,海量视频数据的存…...
Image fusion meets deep learning: A survey and perspective译文
摘要 图像融合是指从不同的源图像中提取和组合最有意义的信息,旨在生成一个更有信息量和有利于后续应用的单图像。深度学习的发展极大地推动了图像融合的发展,而神经网络强大的特征提取和重建能力使融合结果充满希望。最近,几种最新的深度学…...
多维高斯分布的信息熵和KL散度计算
多维高斯分布是一种特殊的多维随机分布,应用非常广泛,很多现实问题的原始特征分布都可以看作多维高斯分布。本文以数据特征服从多维高斯分布的多分类任务这一理想场景为例,从理论层面分析数据特征和分类问题难度的关系注意,本文分…...
物体网格弹性变形---Unity中实现
在游戏引擎场景中的3D物体是由一定数量的点、面组成的,如下图: 要使这些物体变形就是改变3D物体每个顶点状态。 1.首先在Unity场景中增加一个球体,如下图 3D组件默认拥有MeshFilter、meshRenderer、Collider组件,分别用来获取Mes…...
什么是Sass,有什么特点
Sass 概述 什么是 Sass? Sass(Syntactically Awesome Style Sheets)是一种 CSS 预处理器,它扩展了 CSS 的功能,使其更加强大和灵活。Sass 允许开发者使用变量、嵌套规则、混合宏、继承等高级特性,从而编写…...
Spring注入Map学习
Spring注入Map学习 在Spring中 在策略模式中, 会经常用到 根据Bean名称获取Bean的实例 有2个方法很好用 1. 使用Autowired注入 2. 使用构造方法注入 但是奇怪的一点是: 日志打印并没有看到结果, 第一行的 Autowired的结果 是个null 那是因为 注入时机 的问题 注入时机&…...
Java 基础知识 (集合框架 + 并发编程 + JVM 原理 + 数据结构与算法)
文章目录 一.集合框架1. 常见集合接口及其特点List 接口Set 接口Map 接口 2. ArrayList 和 LinkedList 的区别和适用场景ArrayListLinkedList 3. HashSet 和 TreeSet 的特点和用法HashSetTreeSet 4. HashMap 和 TreeMap 的实现原理和使用注意事项HashMapTreeMap 5. 集合遍历方式…...
数据脱敏工具:基于 FFmpeg 的视频批量裁剪
在数据处理和隐私保护领域,数据脱敏是一项重要的任务,尤其是在处理包含敏感信息的视频数据时。本文介绍了一种使用 Python 和 FFmpeg 实现的视频批量裁剪工具,该工具可以将视频中的敏感区域裁剪掉,从而实现数据脱敏。通过使用 PyI…...
从零开始:使用 Spring Boot 开发图书管理系统
如何利用是springboot搭建一个简单的图书管理系统,下面让我们一起来看看吧 文章目录 项目结构1. 主类 LibraryApplication.java功能与注意事项: 2. 模型类 Book.java功能与注意事项: 3. 数据仓库接口 BookRepository.java功能与注意事项&…...
深入浅出:大数据架构中的流处理与实时分析
1. 引言 随着数据产生速度的不断加快,传统的批处理架构已经无法满足实时数据处理和快速响应的需求。流处理成为解决这一问题的关键技术之一,广泛应用于金融、互联网、物联网等领域。流处理技术能够处理不断到来的数据流,实时分析和反馈,使得系统能够迅速做出反应,提供实时…...
基于Multisim的汽车尾灯控制电路设计与仿真
1、电路由四个按键控制,分别对应左转、右转、刹车和检查。 2、当左转或右转键按下时,左侧或右侧的 3个汽车尾灯按照左循环或右循环的顺!2/3 点亮,点亮时间为 1秒。 3、当刹车时,所有的尾灯同时闪烁,闪烁时间为1秒。 4、当检查时…...
WebStorm 2024.3/IntelliJ IDEA 2024.3出现elementUI提示未知 HTML 标记、组件引用爆红等问题处理
WebStorm 2024.3/IntelliJ IDEA 2024.3出现elementUI提示未知 HTML 标记、组件引用爆红等问题处理 1. 标题识别elementUI组件爆红 这个原因是: 在官网说明里,才版本2024.1开始,默认启用的 Vue Language Server,但是在 Vue 2 项目…...
【大数据学习 | Spark-Core】详解分区个数
RDD默认带有分区的,那么创建完毕rdd以后他的分区数量是多少? 从hdfs读取文件的方式是最正规的方式,我们通过计算原理可以推出blk的个数和分区数量是一致的,本地化计算。 我们可以发现数据的读取使用的是textInputFormatÿ…...
(二)Sping Boot学习——Sping Boot注意事项
1.springboot默认是扫描的类是在启动类的当前包或者下级包。 2.运行报错 ERROR:An incompatible version [1.2.33] of the Apache Tomcat Native library is installed, while Tomcat requires version [1.2.34] 网上试了很多方法,直接重新安装更新版…...
深入浅出,快速安装并了解汇编语言
1.什么是汇编语言 了解汇编语言需要先从了解机器语言开始,在计算机发展的初期阶段,机器语言是计算机直接理解和执行的二进制代码语言,其核心特点包括直接执行性、资源高效性、学习难度大以及平台依赖性。它主要由指令码构成,这些…...
LLM的原理理解6-10:6、前馈步骤7、使用向量运算进行前馈网络的推理8、注意力层和前馈层有不同的功能9、语言模型的训练方式10、GPT-3的惊人性能
目录 LLM的原理理解6-10: 6、前馈步骤 7、使用向量运算进行前馈网络的推理 8、注意力层和前馈层有不同的功能 注意力:特征提取 前馈层:数据库 9、语言模型的训练方式 10、GPT-3的惊人性能 一个原因是规模 大模型GPT-1。它使用了768维的词向量,共有12层,总共有1.…...
JavaScript中的箭头函数以及编写优化
箭头函数 1.1.1 箭头函数的概念 箭头函数时ES 6之后增加一种编写函数的方法,并且它比函数的表达式要更加简洁 箭头函数不会绑定this,arguments属性箭头函数不能作为构造函数来使用(不能和new一起来使用,会出现错误) //1.之前的方…...
Thymeleaf模板引擎生成的html字符串转换成pdf
依赖引入implementation("org.springframework.boot:spring-boot-starter-thymeleaf")implementation("org.xhtmlrenderer:flying-saucer-pdf")将ITemplateEngine注入到spring管理的类中, Context context new Context(); context.setVariable…...
Android 实现双列图片瀑布流式布局
Android 实现双列图片瀑布流式布局 实现双列图片瀑布流布局,关键在于 RecyclerView 的 StaggeredGridLayoutManager 和图片的动态加载。以下是实现步骤: 1. 添加必要依赖 使用 Glide 加载图片。确保在 build.gradle 中添加依赖: implement…...
运维Tips:Docker或K8s集群拉取Harbor私有容器镜像仓库配置指南
[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] Docker与Kubernetes集群拉取Harbor私有容器镜像仓库配置 描述:在现在微服务、云原生的环境下,通常我们会在企业中部署Docker和Kubernetes集群,并且会在企业内部搭建Harbor私有镜像仓库以保证开发源码安全,以及加快…...
显示类控件
文章目录 1 QLabel1.1 常用属性1.2 例子1,设置文本 (textFormat)1.3 例子2,设置widget背景图片 (pixmap和scaledContents)1.4 例子3,设置对齐方式 (alignment)1.5 例子4,设置自动换行,缩进和边距1.5.1 设置换行 (wordW…...
AOC显示器915Sw按键失灵维修记
大家好,我是 程序员码递夫 今天给大家分享的是自己维修老古董AOC液晶显示器按键失灵的的过程,实属DIY记录。 1、引子 家里有台老古董的19寸AOC液晶显示器(型号915Sw), 一直作为我的副显示器陪伴着左右,显示还正常&a…...
PyQt学习笔记
一.PyQt5的安装 当我们安装好开发环境后,打开pycharm在其设置里面点击按钮自动安装即可。 安装完成后我们会在这里面看到这几个东西说明安装成功了。 二.PyQt5 GUI程序框架 1.一个简单的PyQt5应用程序 首先我们用pycharm创建一个demo.py的文件。 我们创建文件为s…...
LLMops产品介绍
文章目录 字节跳动的扣子优点低代码开发丰富的插件与能力扩展强大的记忆与数据交互能力应用场景广泛 不足模型选择相对受限定制化程度受限输出效果有待提高应用部署范围有限市场认知度和用户基础不足 开悟大模型运营管理系统(LLMOPS)优点全生命周期管理降…...
【GPTs】Front-end Expert:助力前端开发的智能工具
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | GPTs应用实例 文章目录 💯GPTs指令💯前言💯 Front-end Expert主要功能适用场景优点缺点 💯小结 💯GPTs指令 中文翻译: 使用Dalle生成用户…...
一篇保姆式centos/ubuntu安装docker
前言: 本章节分别演示centos虚拟机,ubuntu虚拟机进行安装docker。 上一篇介绍:docker一键部署springboot项目 一:centos 1.卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest doc…...
人工智能大趋势下软件开发的未来
随着人工智能(AI)技术的不断演进,软件开发领域正经历着深刻的变革。中国电信推出的星辰大模型软件工厂,作为国内首款破局性AI开发工具,其全自动流水线的特性——自动生成前后端代码、自主测试和纠错等,为软…...
string的模拟实现
string的模拟实现 一.string的模拟实现1.1构造函数和析构函数,以及一些简单函数1.2迭代器1.3增删查改 二.运算符重载三.流插入和流提取 一.string的模拟实现 string本质上是是一种char类型的顺序表,结构上和顺序表相似。 namespace Mystring {class st…...
Qt桌面应用开发 第七天(绘图事件 绘图设备)
目录 1.绘图事件paintEvent 2.高级绘图 3.图片绘制 4.绘图设备 4.1QPixmap 4.2QBitmap 4.3QImage 4.4QPicture 1.绘图事件paintEvent paintEvent——绘图事件 需求:利用QPainter绘制点、线、圆、矩形、文字;设置画笔改为红色,宽度为…...
PDF内容提取,MinerU使用
准备环境 # python 3.10 python3 -m pip install huggingface_hub python3 -m pip install modelscope python3 -m pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com下载需要的模型 import json import osimport requests from huggingface_hub…...
基于lora的llama2二次预训练
基于lora的llama2二次预训练 一、为什么需要对llama2做基于lora的二次预训练? 加入中文训练语料进行llama2的二次预训练,这样模型就可以增加支持中文输出的能力。 二、基于lora的llama2二次预训练的目标是什么? 在保持预训练模型权重不变的情况下&a…...
机器学习之量子机器学习(Quantum Machine Learning, QML)
量子机器学习(Quantum Machine Learning, QML)是一门结合量子计算与机器学习的新兴交叉领域。它利用量子计算的优势(如并行计算、量子叠加和量子纠缠)来解决传统机器学习中难以处理的问题,或提升算法效率和性能。 QML 的核心要素 量子计算的特性: 量子叠加:允许量子比特…...
【2024 Optimal Control 16-745】【Lecture 3 + Lecture4】minimization.ipynb功能分析
主要功能-最小化问题 目标函数分析: 定义函数 f ( x ) f(x) f(x) 及其一阶、二阶导数。使用绘图工具可视化函数的形状。 实现数值优化: 使用牛顿法寻找函数的极值点,结合一阶和二阶导数加速收敛。使用正则化牛顿法解决二阶导数矩阵可能不正定的问题。 可视化过程…...
一种新的电机冷却方式——热管冷却
在现代工业设备中,电机作为一种核心动力装置,广泛应用于各个领域。例如,家用电器、自动化生产线、交通工具等都离不开电机的运作。然而,随着电机功率的不断提升和负载的增加,电机在运行过程中产生的热量也随之增多&…...
虚拟机上搭建达梦DSC简略步骤
vmware 17 centos 7.6 达梦 dm8_20240920_x86_rh7_64.iso cd /d C:\Program Files (x86)\VMware\VMware Workstation\.\vmware-vdiskmanager.exe -c -s 100MB -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-dcr.vmdk" .\vmware-vdiskmanager.exe -c -s 100MB -a l…...
C++ 矩阵旋转
【问题描述】 编写一个程序,读入一个矩阵,输出该矩阵以第一行第一列数字为中心,顺时针旋转90度后的新矩阵,例如: 输入的矩阵为: 1 2 3 4 5 6 顺时针旋转90度后输出的矩阵为: 4 1 5 2 6 3 【输入…...
mongodb基础操作
创建数据库 use admin授权 db.auth("admin","123456")创建用户 db.createUser({ user: "xxx", pwd: "xxxxxx", roles: [ { role: "readWrite", db: "iot" } ] })查询数据库大小 show dbs;查询结果数量 db.mo…...
以思维链为线索推理隐含情感
❀ 以思维链为线索推理隐含情感 简介摘要引言THORTHOR核心代码实验结果代码运行总结 简介 本文主要对2023ACL论文《Reasoning Implicit Sentiment with Chain-of-Thought Prompting》主要内容进行介绍。 摘要 尽管情绪分析任务常依据文本中的直接意见表达来判定目标的情绪倾向…...
(笔记,自己可见_1)简单了解ZYNQ
1、zynq首先是一个片上操作系统(Soc),结合了arm(PS)和fpga(PL)两部分组成 Zynq系统主要由两部分组成:PS(Processing System)和PL(Programmable L…...
部署自动清理任务解决ORA-00257: archiver error. Connect internal only, until freed
使用oracle数据库的时候,我们一般都会开启归档,确保数据库的日志连续和和数据安全。但随着数据库的运行,归档文件会越来越多,最终撑满磁盘空间,数据库无法继续归档,出现“ORA-00257: archiver error. Conne…...
scau编译原理综合性实验
一、题目要求 题目: 选择部分C语言的语法成分,设计其词法分析程序、语法语义分析程序。 要求: 设计并实现一个一遍扫描的词法语法语义分析程序,将部分C语言的语法成分(包含赋值语句、if语句、while循环语句…...
[Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
本文由Markdown语法编辑器编辑完成。 1. 需求背景: 最近在启动一个服务时,突然发现它的一个接口,被另一个服务ip频繁的请求。 按理说,之前设置的是,每隔1分钟请求一次接口。但从日志来看,则是1秒钟请求一次ÿ…...
PICO VR串流调试Unity程序
在平时写Unity的VR程序的时候,需要调试自己写的代码,但是有的时候会发现场景过于复杂,不是HMD一体机能运行的,或者为了能够更方便的调试,不需要每次都将程序部署到眼睛里,这样非常浪费时间,对于…...
ESP-KeyBoard:基于 ESP32-S3 的三模客制化机械键盘
概述 在这个充满挑战与机遇的数字化时代,键盘已经成为我们日常学习、工作、娱乐生活必不可少的设备。而在众多键盘中,机械键盘,以其独特的触感、清脆的敲击音和经久耐用的特性,已经成为众多游戏玩家和电子工程师的首选。本文将为…...
PML和金属边界区别
一、完美匹配层(PML)边界 原理:PML是一种特殊的吸收边界条件。它基于麦克斯韦方程组的特殊解来设计,其材料参数是经过精心选择的,使得在这个边界区域内,电磁波能够无反射地进入并被吸收。从数学上来说&…...