Java多线程、进度条实现赛马实验的示例代码

 更新时间:2020年11月02日 14:29:04   作者:shallwe?  
这篇文章主要介绍了Java多线程、进度条实现赛马实验的示例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

赛马

下周一就要去做java实验了,还记得上一次实验还有一个程序没写完,匆匆交了实验报告的半成品(希望老师没发现www)。为了下周一能有更充裕的时间在实验课写代码,我搜了一下我们学校的实验报告。嘿,宁猜怎么着!还真有16年的实验报告。虽然有点不太一样,但题目大多是相同的,于是我就开始写。
这是有关赛马的一个程序,题目如下:编写一个多线程的控制程序,称为赛马程序。创建分别代表两匹马的两个线程,并将它们设置为高低不同的优先级,并以进度条的形式显示赛马过程。
以下是我经过多方学习写出的代码,希望大佬斧正。
(文章写得有点随意,毕竟我也是个随便的人www)

import javax.swing.*;
import java.awt.*;
public class Test 
{
  static Thread threadObj1;
  static Thread threadObj2;
  JFrame frame;
  JPanel panel;
  JLabel label1,label2;
  static JLabel label3;
  static JProgressBar progressBar1;
	static JProgressBar progressBar2;
  public static void main(String[] args)
  {
  	Test test=new Test();
  	test.go();
    threadObj1=new ThreadClass1();
    threadObj2=new ThreadClass2();
    threadObj1.setPriority(6);
    threadObj2.setPriority(4);
    threadObj1.start();
    threadObj2.start();
  }
  void go() 
  {
    frame=new JFrame("赛马");
    panel=new JPanel();
    panel.setLayout(new GridLayout(2,2));
    label1=new JLabel("一号马");
    label2=new JLabel("二号马");
    label3=new JLabel("加油!");
    progressBar1 = new JProgressBar(SwingConstants.HORIZONTAL,0,100);
    progressBar1.setStringPainted(true);
    progressBar2 = new JProgressBar(SwingConstants.HORIZONTAL,0,100);
    progressBar2.setStringPainted(true);
    panel.add(label1);
    panel.add(progressBar1);
    panel.add(label2);
    panel.add(progressBar2);
    frame.getContentPane().add(panel,BorderLayout.CENTER);
    frame.getContentPane().add(label3,BorderLayout.SOUTH);
    frame.setSize(300, 100);
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}
class ThreadClass1 extends Thread
{
	public void run()
	{
		while(Test.progressBar1.getValue()<100)
		{
			Test.progressBar1.setValue(Test.progressBar1.getValue()+1);
			System.out.println(Test.progressBar1.getValue());
			try{
				Thread.sleep((int)(Math.random()*300+100));
			}catch(InterruptedException e) {}
		}
		if(Test.progressBar1.getValue()==100 && Test.progressBar2.getValue()!=100)
			Test.label3.setText("胜利者:1号马!");
	}
}

class ThreadClass2 extends Thread
{
	public void run()
	{
		while(Test.progressBar2.getValue()<100)
		{
			Test.progressBar2.setValue(Test.progressBar2.getValue()+1);
			System.out.println(Test.progressBar2.getValue());
			try{
				Thread.sleep((int)(Math.random()*300+100));
			}catch(InterruptedException e) {}
		}
		if(Test.progressBar2.getValue()==100 && Test.progressBar1.getValue()!=100)
			Test.label3.setText("胜利者:2号马!");
	}
}

到此这篇关于Java多线程、进度条实现赛马实验的示例代码的文章就介绍到这了,更多相关Java赛马实验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文掌握maven  filtering标签

    一文掌握maven  filtering标签

    这篇文章主要介绍了maven  filtering标签,本文通过三种方法给大家讲解maven filtering标签,结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Spring Boot 2.X快速整合jpa过程解析

    Spring Boot 2.X快速整合jpa过程解析

    这篇文章主要介绍了Spring Boot 2.X 如何快速整合jpa?,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 结合Mybatis聊聊对SQL注入的见解

    结合Mybatis聊聊对SQL注入的见解

    这篇文章主要介绍了结合Mybatis聊聊对SQL注入的见解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Spring Boot 打包如何将依赖全部打进去

    Spring Boot 打包如何将依赖全部打进去

    这篇文章主要介绍了Spring Boot 打包如何将依赖全部打进去,在pom.xml中引入插件,需要在项目的pom.xml文件中,添加 Maven 插件  spring-boot-maven-plugin,本文结合实例代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • java语言中封装类代码示例

    java语言中封装类代码示例

    这篇文章主要介绍了java语言中封装类,涉及相关代码示例及结果分析,以及封装的好处简单介绍,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Jenkins+Git+Maven自动化部署配置详解

    Jenkins+Git+Maven自动化部署配置详解

    本文主要介绍了Jenkins+Git+Maven自动化部署配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Spring Cloud CLI简单介绍

    Spring Cloud CLI简单介绍

    本文我们将介绍Spring Boot Cloud CLI(或简称Cloud CLI)。该工具为Spring Boot CLI提供了一组命令行增强功能,有助于进一步抽象和简化Spring Cloud部署。感兴趣的小伙伴们可以参考一下
    2018-12-12
  • ActiveMQ安装及部署教程图解

    ActiveMQ安装及部署教程图解

    这篇文章主要介绍了ActiveMQ安装及部署教程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 如何使用spring gateway微服务网关(基本用法)

    如何使用spring gateway微服务网关(基本用法)

    本文介绍spring gateway的使用,包括配置文件的使用和调试跟踪,让大家了解spring gateway的基本用法,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • 在Mybatis使用Integer与''进行比较的坑及解决

    在Mybatis使用Integer与''进行比较的坑及解决

    这篇文章主要介绍了在Mybatis使用Integer与''进行比较的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论