-
- 可愛的Tom貓程序 -- 拓薪教育
- 第一章:程序代碼
- 1. 準備開發環境
- 第一章:程序代碼
- 可愛的Tom貓程序 -- 拓薪教育
開發工具選擇的是idea,創建Java的工程,cn.tx.img包結構,從今天提供的資料中導入資源中提供好的Tom貓所有的圖片。
在cn.tx包下創建主程序,開始編寫程序代碼。
運行的效果
- 2. 代碼實現的步驟
主代碼
package cn.tx;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* 拓薪教育 -- 騰訊課程認證機構
* 櫻木老師
*/
public class TomGame extends JFrame implements Runnable{
// 生氣圖片集合
private List<ImageIcon> angryIcons = new ArrayList<>();
// 吃飯 圖片集合
private List<ImageIcon> eatIcons = new ArrayList<>();
// 喝水
private List<ImageIcon> drinkIcons = new ArrayList<>();
// 圖片
private static JLabel bgLabel = new JLabel();
// 吃按鈕
private static JLabel eatLabel = new JLabel();
// 喝水按鈕
private static JLabel drinkLabel = new JLabel();
// 定義下標值
private static int num = 0;
// 點擊按鈕,切換動作
private static String action = "angry";
public TomGame(){
try {
// 加載生氣圖片,一共26張圖片
for (int i = 0; i < 26; i++) {
// 圖片的路徑
String path = "img/Animations/Angry/angry_"+(i<10?"0":"")+i+".jpg";
// 讀取圖片
BufferedImage image = ImageIO.read(TomGame.class.getResource(path));
// 圖片
ImageIcon icon = new ImageIcon(image);
// 存入到集合中
angryIcons.add(icon);
}
// 吃東西的圖片
eatLabel.setIcon(new ImageIcon(TomGame.class.getResource("img/Buttons/eat.png")));
// 吃集合
for (int i = 0; i < 40; i++) {
// 圖片的路徑
String path = "img/Animations/Eat/eat_"+(i<10?"0":"")+i+".jpg";
// 讀取圖片
BufferedImage image = ImageIO.read(TomGame.class.getResource(path));
// 圖片
ImageIcon icon = new ImageIcon(image);
// 存入到集合中
eatIcons.add(icon);
}
// 吃東西的圖片
drinkLabel.setIcon(new ImageIcon(TomGame.class.getResource("img/Buttons/drink.png")));
// 吃集合
for (int i = 0; i < 81; i++) {
// 圖片的路徑
String path = "img/Animations/Drink/drink_"+(i<10?"0":"")+i+".jpg";
// 讀取圖片
BufferedImage image = ImageIO.read(TomGame.class.getResource(path));
// 圖片
ImageIcon icon = new ImageIcon(image);
// 存入到集合中
drinkIcons.add(icon);
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 線程run方法
*/
@Override
public void run() {
while (true){
// 沒循環一次,讓num+1,從集合中取值
num++;
try {
// 判斷當前用戶點擊了什麼按鈕
// 當用戶點擊了生氣的按鈕
if("angry".equals(action)){
// 設置圖片
bgLabel.setIcon(angryIcons.get(num));
int size = angryIcons.size()-1;
// 判斷num
if(num == size){
num = 0;
}
}
// 當用戶點擊了吃東西按鈕
if("eat".equals(action)){
// 設置圖片
bgLabel.setIcon(eatIcons.get(num));
int size = eatIcons.size()-1;
// 判斷num
if(num == size){
num = 0;
}
}
// 當用戶點擊了吃東西按鈕
if("drink".equals(action)){
// 設置圖片
bgLabel.setIcon(drinkIcons.get(num));
int size = drinkIcons.size()-1;
// 判斷num
if(num == size){
num = 0;
}
}
// 每100毫秒一針
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* 主函數
* @param args
*/
public static void main(String[] args) {
// 窗口
TomGame frame = new TomGame();
// 設置標題
frame.setTitle("可愛的Tom貓");
// 設置大小
frame.setSize(600,700);
// 設置居中顯示
frame.setLocationRelativeTo(null);
// 設置關閉
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 清空佈局方式
frame.setLayout(null);
// 設置吃飯圖片位置
eatLabel.setBounds(10,420,60,60);
frame.add(eatLabel);
// 綁定鼠標點擊事件
eatLabel.addMouseListener(new MouseAdapter() {
/**
* 當用戶一點擊按鈕,就切換效果
* @param e
*/
@Override
public void mouseClicked(MouseEvent e) {
action = "eat";
num = 0;
}
});
// 設置吃飯圖片位置
drinkLabel.setBounds(10,480,60,60);
frame.add(drinkLabel);
// 綁定鼠標點擊事件
drinkLabel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
action = "drink";
num = 0;
}
});
// 設置位置
bgLabel.setBounds(0,0,600,700);
// 添加組件
frame.add(bgLabel);
// 點擊其他位置,切換會生氣圖片
bgLabel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
action = "angry";
num = 0;
}
});
// 啓動線程
new Thread(frame).start();
// 顯示窗口
frame.setVisible(true);
}
}
根據本人多年從業以及學習經驗,錄製了一套最新的Java精講視頻教程,如果你現在也在學習Java,在入門學習Java的過程當中缺乏系統的學習教程,你可以加羣654631948領取下學習資料,面試題,開發工具等,羣裏有資深java老師做答疑,每天也會有基礎部分及架構的直播課,也可以加我的微信renlliang2013做深入溝通。
java基礎教程:https://ke.qq.com/course/149432?tuin=57912c43
Java分佈式互聯網架構/微服務/高性能/springboot/springcloud: