JMeter源码解析之SplashScreen.java

JMeter源码解析之SplashScreen.java完结

SplashScreen.java主要作用

JMeter GUI启动加载界面。

文件路径

路径地址:…\apache-jmeter-5.1\src\core\org\apache\jmeter\SplashScreen.java

关于SplashScreen内容中的代码解析

package org.apache.jmeter;import java.awt.*;import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;import org.apache.jmeter.util.JMeterUtils;/*** Splash Screen* JMeter启动界面介绍* @since 3.2*/
public class SplashScreen extends JWindow {private static final long serialVersionUID = 1L;private BorderLayout borderLayout = new BorderLayout();private JLabel imageLabel = new JLabel();private JProgressBar progressBar = new JProgressBar(0, 100);/*** Constructor*/public SplashScreen() {//加载JMeter图标,这里修改为自己需要的定制内容imageLabel.setIcon(JMeterUtils.getImage("jmeterlogo.png"));
//        imageLabel.setIcon(JMeterUtils.getImage("jmeterlogo.png"));//图标变换宽度,太丑了,去掉了,设置为0imageLabel.setBorder(new EmptyBorder(0, 0, 0, 0));//展示界面设置setLayout(borderLayout);//图标设置在中间add(imageLabel, BorderLayout.CENTER);//进度条在最下面add(progressBar, BorderLayout.SOUTH);pack();//设定组件位置setLocationRelativeTo(null);}/*** Show screen*/public void showScreen() {//SwingUtilities.invokeLater()在把可运行的对象放入队列后就返回,方法使事件派发线程上的可运行对象排队SwingUtilities.invokeLater(() -> {setVisible(true);setAlwaysOnTop(true);});}/*** Close splash*/public void close() {SwingUtilities.invokeLater(() -> {//dispose()和setVisible()方法,在表象上没有任何区别,它们的实质区别在于setVisible方法仅仅隐藏窗体,而dispose方法是关闭窗体,并释放一部分资源setVisible(false);dispose();});}/*** @param progress Loading progress*/public void setProgress(final int progress) {SwingUtilities.invokeLater(() -> {progressBar.setValue(progress);progressBar.setBackground(Color.blue);/*** 这个功能是自己加的,主要有两个功能* 1.显示加载进度条中间文字* 2.目的是能够展示具体的进度,* */progressBar.setStringPainted(true);if(progress == 100){progressBar.setString("JMeter界面加载完成,当前进度:" + progress + "%,启动界面即将关闭");} else {progressBar.setString("JMeter界面正在加载中,当前进度:" + progress + "%");}});}
}

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

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

相关文章

队列——一种操作受限的线性表

队列 队列(Queue)简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队,删除元素称为出队或离队。队列中的元素是先进先出(Fir…

大聪明教你学Java | 深入浅出聊 Stream.parallel()

前言 🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言&#x1f4…

MySQL学习——选项文件的使用

MySQL 的许多程序都可以从选项文件(有时也被称为配置文件)中读取启动选项。选项文件提供了一种方便的方式来指定常用的选项,这样你就不必每次运行程序时都在命令行上输入这些选项。 要确定一个程序是否读取选项文件,你可以使用 -…

man命令的作用

man命令是Linux操作系统中一个非常实用的命令,它用于查看命令的手册页面,帮助用户了解特定命令的用法、选项和参数。这不仅对新用户在学习如何使用新命令时很有帮助,也方便了经验丰富的用户快速查找命令的详细信息。以下是具体介绍&#xff1…

[论文精读]Supervised Community Detection with Line Graph Neural Networks

论文网址:[1705.08415] Supervised Community Detection with Line Graph Neural Networks (arxiv.org) 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 ⭐内涵大量可视…

高速模拟信号链的设计学习

目录 概述: 定义: 断开: 链路设计: 结论: 概述: 由于对共模参数及其与设备之间的关联缺乏了解,客户仍然会提出许多技术支持问题。ADC数据表指定了模拟输入的共模电压要求。关于这方面没有太…

jenkins应用2

1.jenkins应用 1.jenkins构建的流程 1.使用git参数化构建,用标签区分版本 2.git 拉取gitlab远程仓库代码 3.maven打包项目 4.sonarqube经行代码质量检测 5.自定义制作镜像发送到远程仓库harbor 6.在远程服务器上拉取代码启动容器 这个是构建的整个过程和步骤…

C# 反射类Assembly 程序集(Assembly)用法

常见的两种程序集: 可执行文件(.exe文件)和 类库文件(.dll文件)。 在VS开发环境中,一个解决方案可以包含多个项目,而每个项目就是一个程序集。 他们之间是一种从属关系,也就是说&…

java —— 匿名内部类与 Lambda 表达式

一、匿名内部类 匿名内部类是一种没有名称的类,多用于只使用一次的情况,本质上就是其所继承的父类或接口的一个子类。 (一)继承普通类的情况 public class Test{public void method(){System.out.println("通用方法"…

Python与Android连接:深入探索与实现

Python与Android连接:深入探索与实现 在现代移动应用开发领域,Python和Android的结合使用为开发者带来了无限的可能性。这种跨平台的组合不仅拓宽了开发者的视野,也极大地提升了应用的灵活性和可扩展性。本文将从四个方面、五个方面、六个方…

【NLP开发】Python实现聊天机器人(微信机器人)

🍺NLP开发系列相关文章编写如下🍺:1🎈【小沐学NLP】Python实现词云图🎈2🎈【小沐学NLP】Python实现图片文字识别🎈3🎈【小沐学NLP】Python实现中文、英文分词🎈4&#x1…

转让北京电力施工总承包二级资质变更条件和流程

在电力工程领域,资质等级是企业能否参与竞标、承接工程的重要标志之一。北京电力工程总包二级资质的转让,是指已经取得该资质的企业将其资质转让给需要的企业。这种转让是基于合作与共赢的原则,旨在推动电力工程行业健康、稳定发展&#xff0…

记录使用自定义编辑器做试题识别功能

习惯了将解析写在代码注释,这里就直接上代码啦,里面用到的bxm-ui3组件库是博主基于element-Plus做的,可以通过npm i bxm-ui3自行安装使用 // 识别方法: // dom 当前识别数据所在区域, questionType 当前点击编辑选择的题目类型&a…

力扣刷题--LCR 135. 报数【简单】

题目描述 实现一个十进制数字报数程序,请按照数字从小到大的顺序返回一个整数数列,该数列从数字 1 开始,到最大的正整数 cnt 位数字结束。 示例 1: 输入:cnt 2 输出:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,1…

codeblock怎么编程:从入门到精通的全面指南

codeblock怎么编程:从入门到精通的全面指南 在数字化时代,编程已成为一项不可或缺的技能。Code::Blocks作为一款流行的开源集成开发环境(IDE),为初学者和有经验的开发者提供了强大的编程支持。那么,codebl…

C是结构化编程语言吗:深度剖析与多维度解读

C是结构化编程语言吗:深度剖析与多维度解读 在编程语言的浩瀚海洋中,C语言以其独特的魅力占据着重要的地位。那么,C语言是否可以被归类为结构化编程语言呢?这是一个值得深入探讨的问题。本文将从四个方面、五个方面、六个方面和七…

Qt | Qt 资源简介(rcc、qmake)

1、资源系统是一种独立于平台的机制,用于在应用程序的可执行文件中存储二进制文件(前面所讨论的数据都存储在外部设备中)。若应用程序始终需要一组特定的文件(比如图标),则非常有用。 2、资源系统基于 qmake,rcc(Qt 的资源编译器,用于把资源转换为 C++代码)和 QFile …

java—MyBatis框架

简介 什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&…

软件公司为什么必须要使用低代码系统?

在当今软件行业全国比较内卷的大环境下,软件公司面临着前所未有的挑战。为了在这个竞争激烈的市场中生存并脱颖而出,驰骋低代码设计者认为,软件公司必须要使用低代码系统。以下是几个关键的原因: 时代发展的必然选择 低代码系统是…

领导力中的说服艺术

本文主要介绍了亚里士多德修辞三角理论,即演讲者在说服听众时如何运用品格(Ethos)、情感(Pathos)和逻辑(Logos)三种基本的修辞手法。原文: The Art of Persuasion in Leadership 亚里士多德的说…