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

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