为了账号安全,请及时绑定邮箱和手机立即绑定

Java开了两个线程,用来控制2个小球,一个不起作用。大佬可以看看哪出问题了吗?

Java开了两个线程,用来控制2个小球,一个不起作用。大佬可以看看哪出问题了吗?

瑾色羊 2018-03-20 22:14:54
import java.awt.*;public class Rebound{ public static void main(String args[]) { Frame w=new Frame(); w.setSize(800, 800); MyRebound p=new MyRebound(); w.add(p);  My b=new My();     w.add(b);               Thread t1=new Thread(p);             Thread t2=new Thread(b);               t1.start();       t2.start();             w.show();                 }}class MyRebound extends Panel implements Runnable{      int x=(int)(Math.random()*800);       int y=(int)(Math.random()*800);             int att=0; public void paint(Graphics g) { g.fillOval(x, y, 50, 50);  } public void run(){       while(true) {       //定义飞行姿态       if(att==0) {       x++;          y++;             }       if(att==1) {       x--;       y++;           }       if(att==2) {       x--;       y--;           }       if(att==3) {       x++;       y--;             }                        //改变飞行姿态            if(x>730) {            if (att==0) {             att=1;            }else {                                             att=2;        }  }                      if(y>700) {          if(att==1) {          att=2;          }else {          att=3;          }          }          if(x<0) {          if(att==2) {          att=3;          }else {          att=0;          }          }          if(y<0) {          if(att==3) {          att=0;          }else {          att=1;          }          }              try {                                                       Thread.sleep(5);                                 //线程休眠5毫秒       }catch(Exception e) {}                              //异常处理         repaint();         }    }}//.........................................................................................class My extends Panel implements Runnable{ int i=(int)(Math.random()*800);      int j=(int)(Math.random()*800);       int att=0; public void paint(Graphics g) {                     g.setColor(Color.yellow);                 g.drawOval(i ,j, 50, 50);                 } public void run(){       while(true) {       //定义飞行姿态    if(att==0) {    i++;       j++;       }    if(att==1) {  i--;    j++;      }    if(att==2) {    i--;    j--;      }    if(att==3) {    i++;    j--;       }                     //改变飞行姿态         if(i>730) {         if (att==0) {          att=1;         }else {                                          att=2;     }}                   if(j>700) {       if(att==1) {       att=2;       }else {       att=3;       }       }       if(i<0) {       if(att==2) {       att=3;       }else {       att=0;       }       }       if(j<0) {       if(att==3) {       att=0;       }else {       att=1;       }       }        try {                                                       Thread.sleep(5);                                 //线程休眠5毫秒       }catch(Exception e) {}                              //异常处理         repaint();         }       } }
查看完整描述

3 回答

?
牙牙学语1

TA贡献6条经验 获得超3个赞

感觉你像是没有对界面进行重绘吧~~,好久没看Swing了

查看完整回答
反对 回复 2018-03-21
?
qq_快乐

TA贡献4条经验 获得超0个赞

现在已经不用java写这种图形界面了,所以我不太了解,你其实可以不用学这种图形界面的

查看完整回答
反对 回复 2018-03-21
?
qq_快乐

TA贡献4条经验 获得超0个赞

现在已经不用java写这种图形界面了,所以我不太了解,你其实可以不用学这种图形界面的

查看完整回答
反对 回复 2018-03-21
  • 3 回答
  • 0 关注
  • 1131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信