新手提问:JPanel中repaint()的方法问题?

问题描述

由于图片要更新,所以使用一个repaint()方法,但是我发现这方法放在KeyEvent后遇到的问题就是,子弹的图片更新不了,放在paint()中虽然可以刷新全部的图片,但是CPU占用率极高。希望前辈们给我一点经验,既能解决图像刷新的问题,又能不占用太高CPU的资源方法

解决方案

解决方案二:
看人家介绍Swing的reinvalidate(),invalidate(),validate(),repaint(),paint()的区别与调用时刻的介绍,如果你改了尺寸相关的东西却不是通过界面鼠标调的(代码调的)或位置,应该通知Swinginvalidate()去重新计算变化的部分,如果Swing在repaint()中觉得没有什么变了,它就什么都不做。因为你现在的代码并没有修改这个JButton的任何property,也就没有触发任何propertychange事件,因此Swing觉得你好像没改什么东西它也就什么也不做,换个角度,如果你按键之后是通过myButton.setIcon()来换个图标或许它就知道有变化了。总之,你可以尝试的是先尝试validate,invalidate或reinvalidate之后再来repaint。另外文档还提到了,当我们直接paint时绘图的双倍缓冲的效果就忽略了。
解决方案三:
你把repaint()放到keyRelease事件中去就可以啦,就这么容易!

时间: 2024-09-17 04:07:48

新手提问:JPanel中repaint()的方法问题?的相关文章

新手提问大神,java源代码写好后该怎么用,打包成exe?还是有别的更好的方法

问题描述 新手提问大神,java源代码写好后该怎么用,打包成exe?还是有别的更好的方法 有开发经验的大神告诉我,java源代码写好后该怎么用,打包成exe?还是有别的更好的方法,有的提到了脚本之类的 解决方案 点进去看看,试着去用用http://jingyan.baidu.com/article/358570f6727bb7ce4724fc88.html 解决方案二: 点进去看看,试着去用用http://jingyan.baidu.com/article/358570f6727bb7ce472

java新手:接口中的方法在用的时候还要实现,为什么还要定义。

问题描述 java新手:接口中的方法在用的时候还要实现,为什么还要定义. 接口困扰好久了求解答.纯属新手提问.请勿揍脸................................................................................................................................... 解决方案 好好看看java基础知识,.封装,继承,多态 解决方案二: 没有接口,就没办法自定义代码. 用过Java的排

eclipse java-【新手提问】eclipse中添加图片URL,提示空指针怎么解决?

问题描述 [新手提问]eclipse中添加图片URL,提示空指针怎么解决? 如上3图所示,图片放在工程目录下, URL url = SwingAndThread.class.getResource("1.gif"); // 获取图片的URL Icon icon = new ImageIcon(url); // 实例化一个Icon jl.setIcon(icon); // 将图标放置在标签中 这么写的话就会报以下错误: Exception in thread "main&quo

nodejs addons-【新手提问】关于nodejs文档中addons hellowold运行不成功的问题

问题描述 [新手提问]关于nodejs文档中addons hellowold运行不成功的问题 nodejs文档中关于addons的介绍和helloworld代码链接如下:https://nodejs.org/api/addons.html 现在我完全照搬了官网代码,node-gyp build时,出现如下错误: ![图片说明](http://img.ask.csdn.net/upload/201506/30/1435646750_223011.jpg) 有没有有经验的网友知道为什么? 解决方案

winform-C#新手提问:刚完成一个学籍管理系统

问题描述 C#新手提问:刚完成一个学籍管理系统 如题,使用winform写的一个小系统,结合数据库完成了基本的增删改查功能,在想如何将这个系统的功能实现的更复杂一些锻炼一下自己,比方说将面向对象里面的接口.多态等思想放进去,但苦于没啥思路,希望各位能给点意见,小生在此谢过了.多谢多谢了 解决方案 你定义一个Dao层后,会在里面有一些增删改查的方法,这些方法你可以放在接口中,然后让Dao层的实现类来实现接口里的方法就可以了;在Service层里调用 Dao层实现类就可以了.而Service层也和D

C#新手提问:关于C# winform程序

问题描述 C#新手提问:关于C# winform程序 假设有窗体Form1和Form2通过按钮事件从窗体1跳转到窗体2,button_click事件可以这么写:Form2 aa = new Form2();aa.Show(); 还有一种写法:new Form2().Show();这两种方法都能达到跳转的目的,第一种无须多解释,请问第二种是什么意思?如果在Form1窗体的构造函数中加上重载参数(int n)呢?有啥作用,谢谢 解决方案 第二种写法和第一种是一样,但是你没有办法在后面再用了.很多情况

新手提问:java环境变量

问题描述 新手提问:java环境变量 我安装了jdk,但是今天发现我的环境变量中没有JAVA_HOME,而且path中也没有 jdk的bin路径,但是我在cmd中执行java -version 依然可以查到版本,不会报错,我想知道是不是还有其他的什么方法可以配置环境变量 解决方案 java -version 是看是否按照好:不代表配置好!在cmd中输入javac ,然后出现一堆内容就代表配置好了.配置环境的目前就是能让你在任何资源环境下使用jdk.不需要再到按照jdk的目录下使用. 解决方案二:

路由器-新手提问! 关于ip地址子网的问题

问题描述 新手提问! 关于ip地址子网的问题 先说一说我的理解: IP地址有32位 4位为一段 a类地址从1.0.0.0到127.255.255.255 子网就是在一个ip下再划分出其他的ip地址 这些地址对外部不可见所以可以与外部ip重复 通过子网掩码可以区分 比如一个主机ip地址 126.1.1.0由他划分出一个子网的ip地址126.1.1.3 子网掩码是255.255.255.0那么可以通过子网的ip地址和子网掩码算出主机的ip地址 我的问题是:1 麻烦帮我看看我的理解有没有问题 谢谢!

javascript-关于js中在函数对象构造器中定义对象方法的问题

问题描述 关于js中在函数对象构造器中定义对象方法的问题 为什么函数前要有this.changeName=changeName 我是个新手 谢谢了 解决方案 无关在函数前后,赋值是因为为了调用到person内部定义的changeName函数,要不访问不到.也就是为了实现下面 myMonther.changeName('Ballmer');//这么使用函数 解决方案二: changeName是个私有函数,外部是访问不到的,所以要想在外部能够访问到就必须给个外部能访问到的公有属性或者公有方法