JAVA 利用JLabel 循环地设置图片,以实现图片播放,但是没有播放而是等程序运行结束后显示最后一张 图片播放javaJLabel 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这应该不是java代码的问题吧,应该是前台的问题 js之类的,后台数据变化不会影响一个页面,所以要用js来实时刷新局部 因为这段代码是在UI线程里执行的,线程被阻塞,导致界面不能刷新,new 一个新线程执行这段代码 在setIcon之后加上paintComponents(getGraphics())刷新就可以了。还是感谢大家的回复 正解这个不对,至少没说清楚,楼主可以自己搜一下关于swing线程规则的知识楼主自己发现的这方法不对按你这方法,在图片刷新期间你整个程序的其他所有控件会像死机一样木有反应 回答楼主最初的问题: 方法有很多种,要注意线程安全。- 可以用第三方的动画库(推荐)- 可以用 javax.swing.Timer 来代替 for 循环(Timer 就相当于最精简的一个动画库)- 可以像 6 楼说的一样用线程,Runnable 里写 for 循环,但是 setIcon 的调用要在UI线程内完成,去查 SwingUtilities.invokeLater- 可以用 SwingWorker,与线程的方案相仿 java中怎样使用别人的类库? 如何获得JVM执行过程中调用的方法名(包含Java自带的)? Java swing 使用substance后怎么改变颜色? 想问一个定时器的问题, 在Canvas上画图,怎样才能在窗口大小变化时,自动刷新? 小女子求助,为何 JXTA v2.5 HelloWorld 无法成功运行 JTable 小计 合计行 JFrame中如果有多条记录一页显示不完怎么半? 如何用字符串"20001212"得到一个日期对象? 类全局变量的初始化,两种方式的区别 JNative调用window下的dll Java 为什么子类能转换成父类,反之不行?
正解
这个不对,至少没说清楚,楼主可以自己搜一下关于swing线程规则的知识
楼主自己发现的这方法不对
按你这方法,在图片刷新期间你整个程序的其他所有控件会像死机一样木有反应
- 可以用 javax.swing.Timer 来代替 for 循环(Timer 就相当于最精简的一个动画库)
- 可以像 6 楼说的一样用线程,Runnable 里写 for 循环,但是 setIcon 的调用要在UI线程内完成,去查 SwingUtilities.invokeLater
- 可以用 SwingWorker,与线程的方案相仿