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

网友投稿 304 2023-02-26

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 GrizNigNdLayout(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);

http:// 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号马!");

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:api接口对接多平台(对接第三方api)
下一篇:云南扶贫大数据平台(云南扶贫网app)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~