首页 > 编程语言 >JMeter源码解析之SplashScreen.java

JMeter源码解析之SplashScreen.java

时间:2024-05-31 11:30:04浏览次数:17  
标签:java imageLabel progressBar 源码 import progress JMeter SplashScreen

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"));
        //图标变换宽度,太丑了,去掉了,设置为0
        imageLabel.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 + "%");
            }
        });
    }
}

标签:java,imageLabel,progressBar,源码,import,progress,JMeter,SplashScreen
From: https://blog.csdn.net/u012151594/article/details/139347995

相关文章

  • JMeter源码解析之NewDriver.java(一)
    JMeter源码解析之NewDriver.java(一)NewDriver.java主要作用JMeter程序入口:JMeter的主类-设置初始类路径和加载程序。文件路径路径地址:…\apache-jmeter-5.1\src\core\org\apache\jmeter\NewDriver.java文章重点关于static内容中的代码解析详细的解释请关注代码中的解释......
  • java入门基础语法--抽象与接口(详细)
    前言Hello,大家好!很开心与你们在这里相遇,我是一个喜欢文字、喜欢有趣的灵魂、喜欢探索一切有趣事物的女孩,想与你们共同学习、探索关于IT的相关知识,希望我们可以一路陪伴~1.抽象什么是抽象父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和......
  • JAVA【案例4-8】模拟物流快递系统程序设计
    【模拟物流快递系统程序设计】1、案例描述网购已成为人们生活的重要组成部门,当人们在购物网站中下订单后,订单中的货物就会在经过一系列的流程后,送到客户的手中。而在送货期间,物流管理人员可以在系统中查看所有物品的物流信息。编写一个模拟物流快递系统的程序,模拟后台系统处......
  • Java字符串逗号分隔转换List集合
    开发中常用String字符串接收多个用逗号或分号分隔的id,之后再将字符串处理成List<String>集合来方便使用数据。常用方式1.For循环添加Stringstr="123,456,789";List<String>listIds=newArrayList<>();String[]split=str.split(",");for(Strings:split){......
  • Java构造方法的作业题
    基于面向对象的构造方法的调用,产生有参和无参的构造方法,使用private去保护类内访问packagecom.imooc.day01;/***@authorwangChen*@date2024/5/30*@Description*/publicclassHomeWork01{privateStringname;privateintdata;privatedou......
  • 基于springboot实习管理系统的设计与实现vue(源码+lw+部署文档+讲解等)
    前言......
  • 探索Java
    第一站:Java绿——基础语法的清新之源关键词:类、对象、封装、继承、多态Java的旅程始于一片生机盎然的绿色,正如其标志性的咖啡杯图标,象征着活力与基础。在这里,我们学习Java的基础语法,理解面向对象编程的核心概念——类与对象,以及封装、继承、多态的奥秘。就像是在春天播下知识......
  • 基于springboot摄影跟拍预定管理系统vue(源码+lw+部署文档+讲解等)
    前言......
  • 基于springboot留守儿童爱心网站vue(源码+lw+部署文档+讲解等)
    前言......
  • 面经-Java,Linux,Mysql,网络
    状态码2xx:成功类3xx:重定向4xx:客户端错误5xx:服务器错误404:未找到网页400:请求语法错误500:服务器错误503:服务器停机200:成功post和get的区别get多用于获取服务端数据,post多用于向服务端推送数据。get的参数多拼接在url中,post的参数放在请求体中。故post的安全系数高......