import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import java.lang.Math;
class movezi extends Frame implements Runnable
{int x=0;
int y=0;
movezi p=new movezi();
Thread trd=new Thread(p);
movezi()
{setSize(300,250);
setVisible(true);
Font fnt=new Font("隶书",Font.BOLD,16);
setFont(fnt);
trd.start();
addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e)
{setVisible(false);
System.exit(0);}});
}
public void run(){
while(true)
{x=(int)((Math.random())*60+1);
y=(int)((Math.random())*70+1);
repaint();
try{trd.sleep(100);}
catch(InterruptedException e){}}}
public void paint(Graphics g)
{g.drawString(" 王华",x,y);}
}
public class abc
{public static void main(String args[]){movezi mzi=new movezi();}}
这是执行java abc命令的结果,如下
at movezi.<init>(abc.java:8)
at movezi.<init>(abc.java:8)
at movezi.<init>(abc.java:8)
at movezi.<init>(abc.java:8)
at movezi.<init>(abc.java:8)
at movezi.<init>(abc.java:8)
at movezi.<init>(abc.java:8)
at movezi.<init>(abc.java:8)
at movezi.<init>(abc.java:8)
at movezi.<init>(abc.java:8)
怎么回事啊?编译时能通过,就是运行时连窗口都显示不了。
Java,线程,随机数,急
答案:1 悬赏:20 手机版
解决时间 2021-04-25 08:44
- 提问者网友:捧腹剧
- 2021-04-24 23:40
最佳答案
- 五星知识达人网友:孤独入客枕
- 2021-04-25 00:55
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import java.lang.Math;
class movezi extends Frame implements Runnable
{int x=0;
int y=0;
//movezi p=new movezi(); //你在本类里new一个自己的对象,这不无限递归了么
Thread trd=new Thread(this); // 用this来指代自己就行了
movezi()
{setSize(300,250);
setVisible(true);
Font fnt=new Font("隶书",Font.BOLD,16);
setFont(fnt);
trd.start();
addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e)
{setVisible(false);
System.exit(0);}});
}
public void run(){
while(true)
{x=(int)((Math.random())*60+1);
y=(int)((Math.random())*70+1);
repaint();
try{trd.sleep(100);}
catch(InterruptedException e){}}}
public void paint(Graphics g)
{g.drawString(" 王华",x,y);}
}
public class test
{public static void main(String args[]){movezi mzi=new movezi();}}
举个简单的例子
class A { A a = new A(); }
然后你在main里new一个A
A a = new A();
由于A类里初始化了一个A类型的成员a,所以再次new,然后新new出来的A类对象里还有一个a对象需要被new,再次new,、、、
import java.awt.event.*;
import java.awt.Graphics;
import java.lang.Math;
class movezi extends Frame implements Runnable
{int x=0;
int y=0;
//movezi p=new movezi(); //你在本类里new一个自己的对象,这不无限递归了么
Thread trd=new Thread(this); // 用this来指代自己就行了
movezi()
{setSize(300,250);
setVisible(true);
Font fnt=new Font("隶书",Font.BOLD,16);
setFont(fnt);
trd.start();
addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e)
{setVisible(false);
System.exit(0);}});
}
public void run(){
while(true)
{x=(int)((Math.random())*60+1);
y=(int)((Math.random())*70+1);
repaint();
try{trd.sleep(100);}
catch(InterruptedException e){}}}
public void paint(Graphics g)
{g.drawString(" 王华",x,y);}
}
public class test
{public static void main(String args[]){movezi mzi=new movezi();}}
举个简单的例子
class A { A a = new A(); }
然后你在main里new一个A
A a = new A();
由于A类里初始化了一个A类型的成员a,所以再次new,然后新new出来的A类对象里还有一个a对象需要被new,再次new,、、、
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯