java基础教程之Tom猫程序

    xiaoxiao2022-07-12  154

    可爱的Tom猫程序 -- 拓薪教育 第一章:程序代码 1. 准备开发环境

    开发工具选择的是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:

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

    最新回复(0)