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.pswp.cn/news/392747.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392747.shtml
英文地址,請注明出處:http://en.pswp.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目錄下 …