awt jtable 多线程加载图片_Java项目实战之天天酷跑(三):缓冲加载游戏界面

2a454e20b0cf336f8aac3ca42c871b53.png
前文,我们完成了开始游戏界面的搭建。本文将实现缓冲加载界面的搭建。并搭建与前面俩界面间的桥梁。实现输入正确用户名密码后,进入开始游戏界面,点击开始游戏按钮后,进入缓冲加载界面的功能。

界面示意图:

8e9166d38460a89afc5195d0d840647c.png

具体要求:

  • 缓存加载界面:背景图片、进度条
  • 动态加载过程。(线程)

我们想要实现动态的缓冲加载过程,让进度条动起来,就需要引入线程的概念了。

线程:

Thread类中这样定义:

线程是程序中执行的线程,Java虚拟机允许程序同时运行多个执行线程。

举个例子,你用百度网盘下载一部电影,这就是一个线程。而如果你同时下载多部电影,这就是多线程了。

1.线程有6种状态:新建,运行,阻塞,等待,计时等待和终止。

新建:当使用new操作符创建新线程时,线程处于“新建”状态。
运行(可运行):调用start()方法。
阻塞:当线程需要获得对象的内置锁,而该锁正在被其他线程拥有。
等待:当线程等待其他线程通知调度表可以运行时。
计时等待:对于一些含有时间参数的方法,如Thread类的sleep() 。
终止:当run()方法运行完毕或出现异常时。

2.创建线程的两种方式:

1、实现Runnable
2、实现Thread类

直接上代码:

package cn.sqc.runday.controller;import java.awt.BorderLayout;
import java.awt.Color;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;/*** * @author Huey* @date 2020-11-18* 缓存加载界面:背景图片、进度条* 动态加载过程。(线程)* */
public class WindowFrame extends JFrame implements Runnable{JLabel background;//进度条JProgressBar jdt;//创建一个线程并启动public void Start(){WindowFrame frame = new WindowFrame();Thread t = new Thread(frame);//t代表线程//启动线程t.start();dispose();}public WindowFrame() {background = new JLabel(new ImageIcon("Image/hbg.jpg"));this.add(BorderLayout.NORTH,background);//放在窗口上面jdt = new JProgressBar();jdt.setStringPainted(true);//加载以字符串形式呈现出来。0%jdt.setBackground(Color.ORANGE);this.add(BorderLayout.SOUTH,jdt);//大小 568 * 340this.setSize(568,340);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(3);this.setUndecorated(true);this.setIconImage(new ImageIcon("Image/115.png").getImage());	this.setVisible(true);	}public static void main(String[] args) {new WindowFrame().Start();}@Overridepublic void run() {//启动线程后,线程具体执行的内容int [] values = {0,1,3,10,23,32,40,47,55,66,76,86,89,95,99,99,99,100};for(int i=0; i<values.length; i++){//循环遍历赋值jdt.setValue(values[i]);//线程休眠try {Thread.sleep(200);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}//200毫秒}}}

加载界面代码敲完,现在开始造桥。

fb45a6860315584d587db2094e048ff0.png

现在,我们从第一个登录界面开始测试。

1ed3ef5800583abcfcc50eeed3a0d522.png

点击开始游戏:

234f8a58287e4d3cbb07443dacd4586f.png

非静止画面……

dc1a542b2f914fbff0821135a4b79b6c.png

a99670aeb1a08a98aa6890625902400a.png

成功实现!

文章来源:Java学习笔记_16 项目实战之天天酷跑(三):缓冲加载游戏界面
原文作者:MyHuey/如有侵权,请联系删除
来源平台:CSDN论坛博客

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

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

相关文章

When Cyber Security Meets Machine Learning 机器学习 安全分析 对于安全领域的总结很有用 看未来演进方向...

链接&#xff1a;http://ucys.ugr.es/jnic2016/docs/MachineLearning_LiorRokachJNIC2016.pdf https://people.eecs.berkeley.edu/~adj/publications/paper-files/SecML-MLJ2010.pdf 一些关键点&#xff1a; 算了&#xff0c;不总结了。 本文转自张昺华-sky博客园博客&#xff…

如何使用TypeScript和Webpack Hot Module Replacement构建Apollo GraphQL服务器

by Derek Fong由德里克方(Derek Fong) 如何使用TypeScript和Webpack Hot Module Replacement构建Apollo GraphQL服务器 (How to build an Apollo GraphQL server with TypeScript and Webpack Hot Module Replacement) Let’s build an Apollo GraphQL Server with TypeScript…

本地修改指向服务器,本地修改指向服务器

本地修改指向服务器 内容精选换一换已获取服务器管理员帐号与密码。打开CMD运行窗口&#xff0c;输入gpedit.msc&#xff0c;打开本地组策略编辑器。打开组策略在指定RD会话主机服务器的授权模式下拉列表中选择按用户。设置允许RD最大连接数位999999。设置结束已断开连接的会话…

JUnit的使用

JUnit的作用(是一个第三方的组件,eclipse带了JUnit) 一个工具&#xff0c;用于单元测试&#xff0c;Java Unit 单元单元&#xff1a;一个类或是一个方法2. 在eclipse中的使用 操作步骤&#xff1a;在工程名上点右键-> Build Path -> add Libraries –> JUnit 测试方法…

乘法运算

无符号mul和有符号imul&#xff0c;在编译的过程中&#xff0c;先尝试将乘法转换成加法 或使用移位指令等周期转移较短的指令&#xff0c;如果都没有才用乘法指令 int main(int argc,char *argv) {int nVarOne argc;int nVarTwo argc;// 变量乘常量 (非2的幂)printf("nV…

leetcode 381. O(1) 时间插入、删除和获取随机元素 - 允许重复

设计一个支持在平均 时间复杂度 O(1) 下&#xff0c; 执行以下操作的数据结构。 注意: 允许出现重复元素。 insert(val)&#xff1a;向集合中插入元素 val。 remove(val)&#xff1a;当 val 存在时&#xff0c;从集合中移除一个 val。 getRandom&#xff1a;从现有集合中随机…

MAYA建模桌面一角_maya怎么建模逼真的学生书桌书桌桌面?

今天我们就来看看使用maya建模学生书桌的方法&#xff0c;这是实例教程&#xff0c;请看下文详细介绍。NURBS曲线的基础知识&#xff1a;NURBS曲面是由网状的曲线组合而成&#xff0c;在maya中可以使用creat菜单下的CV Curve Tool(CV曲线工具)EP Curve Tool(EP曲线工具)来创建曲…

expect 批量修改服务器用户密码

每个技术人员离职&#xff0c;留下的人 就要修改他的服务器账号密码&#xff0c;很麻烦&#xff0c;故写次脚本偷懒 change.sh 如下 12345678910#!/bin/bashfor i in awk {print $1} account.txt dojawk -v l"$i" {if(l$1)print $2} account.txt aawk -v l"$i&q…

虚拟机安装服务器2008,VMware Workstation 虚拟机安装64位windows 2008 R2 系统

偶看现在使用的电脑是 惠普 康柏 Elite 8300 MT Mini Tower&#xff0c;操作系统 Windows 7 旗舰版 64位基本硬件展示处理器 英特尔 第三代酷睿 i5-3470 3.20GHz 四核主板 惠普 3397内存 8 GB ( 记忆科技 DDR3 1600MHz / 镁光 DDR3 1600MHz )主硬盘 西数 WDC WD5000AAKX-60U6A…

黑客入门之单机游戏外挂

转载于: http://www.cnblogs.com/huipengbo/p/6887170.html 一.本文以植物大战僵尸外挂的编写为例&#xff0c;介绍单机游戏外挂的编写和使用过程。 1.启动单机游戏如&#xff1a;植物大战僵尸如下图 2.想明白我们写外挂的目的&#xff1a;让我们有充足的阳光数量来使用&#x…

如何使用浏览器控制台通过JavaScript抓取并将数据保存在文件中

by Praveen Dubey通过Praveen Dubey 如何使用浏览器控制台通过JavaScript抓取并将数据保存在文件中 (How to use the browser console to scrape and save data in a file with JavaScript) A while back I had to crawl a site for links, and further use those page links …

poj2017

1&#xff0e;链接地址 https://vjudge.net/problem/POJ-2017 2&#xff0e;问题描述 Bill and Ted are taking a road trip. But the odometer in their car is broken, so they dont know how many miles they have driven. Fortunately, Bill has a working stopwatch, so t…

NFL原则告诉我们做决策的时候,试图找到一个能解决所有问题,“大而全”的方案是不存在的。我们应当找到最关心的问题,因地制宜做出选择。——聚焦目标,取舍有道!...

资源匮乏原则&#xff1a; 有限的资源无法满足无穷的需要及欲望&#xff1b; 因此想要多一点的某件东西&#xff0c;意味着必须放弃一些其他的东西&#xff1b; 因为资源匮乏&#xff0c;所以我们必须做出选择。 NFL原则&#xff1a;没有免费午餐定理(No Free Lunch)是wolpert和…

巨无霸Win8PE X64服务器维护专用,【13年4月4日】维护版win8pe【32位+64位+纯64位】(支持BIOS+EFI)...

因为单独一个PE是不够用的&#xff0c;已经制作了合盘&#xff0c;可BIOS启动&#xff0c;也可EFI启动。详情移步》欢迎下载使用&#xff0c;觉得好的话&#xff0c;请回帖支持一下&#xff0c;您的支持&#xff0c;就是我的动力。。。。预祝大家新的一年合家欢乐&#xff01;工…

linux子线程运行的函数_Linux中线程使用详解

4. 线程的属性前面还说到过线程创建的时候是有属性的&#xff0c;这个属性由一个线程属性对象来描述。线程属性对象由pthread_attr_init()接口初始化&#xff0c;并由pthread_attr_destory()来销毁&#xff0c;它们的完整定义是&#xff1a;int pthread_attr_init(pthread_attr…

数据源 连接oracle

https://blog.csdn.net/kk185800961/article/details/53065257 转载于:https://www.cnblogs.com/BelieveFish/p/11164009.html

leetcode 140. 单词拆分 II(记忆化)

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict&#xff0c;在字符串中增加空格来构建一个句子&#xff0c;使得句子中所有的单词都在词典中。返回所有这些可能的句子。 说明&#xff1a; 分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 …

java mvp开发_如何从没有软件开发技能的想法变成现实的市场MVP?️?

java mvp开发by Mike Williams由Mike Williams 如何从没有软件开发技能的想法变成现实的市场MVP&#xff1f;️&#xff1f; (How to go from idea to live marketplace MVP with no software development skills ?️?) Online marketplaces such as Airbnb, Turo, Hipcamp,…

Convolutional neural networks for artistic style transfer

https://harishnarayanan.org/writing/artistic-style-transfer/ 转载于:https://www.cnblogs.com/guochen/p/6888478.html

Centos 安装 禅道

Centos 安装 禅道 一、环境准备&#xff1a; 1、服务器&#xff1a;Centos6.7 新系统 2、查看对应的系统版本&#xff1a;uname -a和cat /etc/redhat CentOS release 6.7 (Final) 二、安装&#xff1a; 1、下载对应系统版本的zbox禅道一键安装包&#xff0c;解压至/opt目录下 …