遇到一个问题,求大神指教。
java吧
全部回复
仅看楼主
level 1
bnugnuji 楼主
class PainThread extends Thread //重画线程
{
public void run() {
while(true){
repaint();
try {
Thread.sleep(5000); //这里面的参数设多少都没反应,一运行CPU就满载
break;
} catch(InterruptedException ie) {}
}
}
}
2018年03月31日 05点03分 1
level 1
bnugnuji 楼主
public void paint(Graphics g) { //加载窗口
super.paint(g);
new PainThread().start(); //启动重画线程(就在这里调了一次这方法)
g.drawImage(img,(int)x,(int) y, null);
if(left){
x-=1;
}
else {
x+=1;
}
if (x>500-30) {
left=true;
}
if(x<0){
left=false;
}
}
2018年03月31日 05点03分 2
level 13
最近一大波玩swing的大佬[滑稽]
2018年03月31日 05点03分 3
教材上是这么说的,还有别的方法实现窗口刷新吗[乖]
2018年03月31日 06点03分
level 12
按理说不会满载cpu,你贴出来全部代码
2018年03月31日 08点03分 4
楼中楼贴不了,在楼下贴了
2018年03月31日 13点03分
@bnugnuji 我知道了,怪不得会满载
2018年03月31日 13点03分
@一瓣洋葱º 是因为什么
2018年03月31日 17点03分
@bnugnuji 你在paint里面创建线程,每次repaint都会创建线程,相当于每次重画就会创建一个线程最后无限个线程重画界面
2018年03月31日 23点03分
level 1
bnugnuji 楼主
public class Gamefarme2 extends Frame {
Image img = gameUtil.getImage("imges/game.png"); //加载图片
public void launchFrame ()
{
setSize(600,600);
setLocation(100,100);
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
private double x,y=100;
private boolean left;
@Override
public void paint(Graphics g) { //加载窗口
super.paint(g);
new PainThread().start();//启动重画线程
g.drawImage(img,(int)x,(int) y, null);
if(left){
x-=1;
}
else {
x+=1;
}
if (x>500-30) {
left=true;
}
if(x<0){
left=false;
}
}
class PainThread extends Thread//重画线程
{
public void run() {
while(true){
repaint();
try {
Thread.sleep(5000);
break;
} catch(InterruptedException ie) {}
}
}
}
public static void main(String[] args) { // 主函数
Gamefarme2 gf= new Gamefarme2();
gf.launchFrame();
}
}
2018年03月31日 13点03分 5
level 9
自己找找有没有把流关了……不管不满载才见鬼
2018年04月02日 11点04分 6
1