展开全部

自己写的代码。能通过测试

题目中的要求用线程实现图片的切换

主要有两种方式可以实现。一种62616964757a686964616fe78988e69d8331333332643937是Swing包下的Timer类。一种是Thread类import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MousDemo extends JFrame {

MyJPanel mp;

int index;

ImageIcon[] imgs = { new ImageIcon("C:\\Users\\lenovo\\Desktop\\a.png"),

new ImageIcon("C:\\Users\\lenovo\\Desktop\\b.png") };

public MousDemo() {

mp = new MyJPanel(false);

this.add(mp);

this.setSize(300, 200);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setTitle("鼠标窗口");

this.setVisible(true);

/**

* 方式一,使用TImer来切换图片

* Swing下的Timer组件,个人觉得非常适合

* Timer(200,new ActionListener());意思就是每200毫秒执行一次ActionListener里面的方法

* */

Timer timer = new Timer(200,new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

mp.flag = !mp.flag;

mp.repaint();

}

});

timer.start();

/**

* 方法二:

* 线程的方式

* */

//new Thread(new Runnable() {

//

//@Override

//public void run() {

//while(true){

//mp.flag = !mp.flag;

//mp.repaint();

//try {

//Thread.sleep(200);

//} catch (InterruptedException e) {

//e.printStackTrace();

//}

//}

//

//}

//}).start();

}

public static void main(String[] args) {

new MousDemo();

}

class MyJPanel extends JPanel{

boolean flag;

public MyJPanel(boolean flag) {

this.flag = flag;

}

@Override

public void paint(Graphics g) {

super.paint(g);

if(flag == false){

g.drawImage(imgs[0].getImage(), 0, 0,this);

}else{

g.drawImage(imgs[1].getImage(), 0, 0,this);

}

}

}

}

java用线程插入一张图片_JAVA中怎么用线程实现图片的切换?相关推荐

  1. java线程开启不了_Java中多线程启动,为什么调用的是start方法,而不是run方法?...

    前言 大年初二,大家新年快乐,我又开始码字了.写这篇文章,源于在家和基友交流的时候,基友问到了,我猛然发现还真是这么回事,多线程启动调用的都是start,那么为什么没人掉用run呢?于是打开我的ide ...

  2. java线程池怎么创建_java中的线程池,如何创建?

    Java中的线程池它是线程的容器,或者(换句话说,它是具有执行任务能力的线程的集合). 我们可以使用ThreadPool框架来定位(或实现)线程池. 线程池可以包含多个线程.每当我们执行任何任务时,线 ...

  3. java i线程安全吗_Java中 i++ 是线程安全的么?为什么?

    问题 在 int i = 0; i = i++; 语句中,i = i++是线程安全的么?如果不安全,请说明上面操作在JVM中的执行过程,为什么不安全?说出JDK中哪个类能达到以上的效果,并且是线程安全 ...

  4. java 事务管理 子父线程_Java中的父线程与子线程

    参考资料:https://my.oschina.net/hosee/blog/509557 结论:父线程的生命周期与子线程没有关系. 个人感觉:每个线程包括main线程(除了守护线程)都是平级关系,不 ...

  5. java中线程的生命周期_Java中的线程生命周期– Java中的线程状态

    java中线程的生命周期 Understanding Thread Life Cycle in Java and Thread States are very important when you a ...

  6. java 线程执行结束_java中怎么判断线程执行完毕

    java中怎么判断线程执行完毕 发布时间:2020-05-15 15:18:05 来源:亿速云 阅读:316 作者:Leah java中怎么判断线程执行完毕?针对这个问题,今天小编总结这篇有关线程判断 ...

  7. java中线程池的使用_Java中线程池的简单使用

    什么是线程池? 顾名思义线程池就是线程的容器 举个例子:在没有共享电源的年代,车站有5个人手机都没电且都没有带电源,这五个人想要给手机充电只能去车站的售货亭各花100块钱买一个移动电源:但是现在共享电 ...

  8. java公平索非公平锁_java中的非公平锁不怕有的线程一直得不到执行吗

    首先来看公平锁和非公平锁,我们默认使用的锁是非公平锁,只有当我们显示设置为公平锁的情况下,才会使用公平锁,下面我们简单看一下公平锁的源码,如果等待队列中没有节点在等待,则占有锁,如果已经存在等待节点, ...

  9. java 线程不安全例子_Java中多线程安全问题实例分析

    案例package com.duyang.thread.basic.basethread; /** * @author :jiaolian * @date :Created in 2020-12-16 ...

最新文章

  1. mvc中的ViewData用到webfrom中去
  2. 超易懂的MapReduce思想讲解
  3. 关于程序中数据库报错“父项未找到”
  4. win8 远程桌面时提示凭证不工作问题的终极解决办法
  5. 用户态/内核态、用户栈/内核栈
  6. I2S 和 PCM 区别
  7. 游戏编程技巧分析:策划变心太快?也许可以使用组合
  8. 2020春招机考汇总1(Python):农场养鸡、连续子序列最大值的期望
  9. 基于java+springboot+layui的流浪动物交流信息平台设计实现
  10. python 编程(关于twisted)
  11. linux 比较内容,Linux命令比较文件内容
  12. 浅谈Borg/YARN/Mesos/Torca/Corona一类系统
  13. 2016腾讯实习生招聘_基础研究 面试心得
  14. 微软发布的 免费文件恢复工具
  15. 中国越野车和皮卡市场趋势报告、技术动态创新及市场预测
  16. express框架实现文件上传、下载及推送(使用Websocket)
  17. MATLAB在线编辑网站及使用教程
  18. 微信6.5.10版 android,安卓版微信6.5.10版发布:这些新功能你都知道么?
  19. idea的Terminal的git提示密码,修改git配置文件配置
  20. 关于虚拟机搭建Hadoop的几个坑

热门文章

  1. 计算机应用基础知识点.pdf,《计算机应用基础》复习知识点.pdf
  2. halcon区域腐蚀膨胀算子_OpenCV 图像处理之膨胀与腐蚀
  3. 这是最新的人工发射wifi信号技术吗?
  4. linux修改权限重启恢复,Linux错误执行:chmod 777 .*或chown -R * 的补救方法
  5. php 获取日期标签的值,在php中获取标签的选定索引值
  6. php模板引擎哪个好,php模板引擎原理是什么?
  7. java aio事件模型_IO模型之AIO代码及其实践详解
  8. RESTful架构风格
  9. 堆和栈组合:双端队列c++
  10. 我的csdnmark