java基礎教程之Tom貓程序

    1. 可愛的Tom貓程序 -- 拓薪教育
      1. 第一章:程序代碼
        1. 1. 準備開發環境

開發工具選擇的是idea,創建Java的工程,cn.tx.img包結構,從今天提供的資料中導入資源中提供好的Tom貓所有的圖片。

在cn.tx包下創建主程序,開始編寫程序代碼。

運行的效果

 

  1. 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:

https://ke.qq.com/course/179440?tuin=57912c43

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章