返回信息流import java.awt.*;
import java.lang.*;
import java.awt.event.*;
public class MyThread2 extends Frame implements Runnable
{
Button b;
Thread ballThread,drawBox;
int x =20;
MyThread2()
{
b = new Button("Move");
b.setBounds(20,40,60,60);
add(b);
drawBox = new Thread(this);
drawBox.start();
ballThread = new Thread(this);
ballThread.start();
}
public void run()
{
if(Thread.currentThread() == drawBox)
{
while(true)
{
x=x+5;
if(x>500)
{
x=20;
}
else
{
b.setBounds(x,40,60,60);
}
try
{
drawBox.sleep(200);
}
catch(InterruptedException ee)
{
}
}
}
else if(Thread.currentThread() == ballThread)
{
while(ballThread != null)
{
Thread 兰色球;
兰色球=new Thread(this);
MyCanvas blue;
blue=new MyCanvas(Color.blue);
setLayout(null);
add(blue);
blue.setLocation(x,100);
兰色球.start();
try
{
ballThread.sleep(1000);
}
catch(InterruptedException e)
{
myState.setText("Thread interrupted");
}
}
}
}
}
class MyCanvas extends Canvas
{
Color c;
MyCanvas(Color c)
{
setSize(20,20);
this.c=c;
}
public void paint(Graphics g)
{
g.setColor(c);
g.fillOval(0,0,20,20);
}
}
public static void main(String args[])
{
new MyThread2();
}
[size=7][size=4]麻烦帮帮忙吧!总是报错:需要为 class、interface 或 enum
public static void main(String args[])[/size][/size]
这是一条镜像帖。来源:北邮人论坛 / java / #16568同步于 2010/11/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
麻烦各位高手帮帮忙
zhangjiali
2010/11/28镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
问题太多了。。。
main函数要放在类里面
class MyCanvas extends Canvas ,没看到有Canvas这个类
【 在 zhangjiali (懂) 的大作中提到: 】
: import java.awt.*;
: import java.lang.*;
: import java.awt.event.*;
: ...................
你还真看了。。。。
赞
【 在 ox (小贝) 的大作中提到: 】
: 问题太多了。。。
: Thread 兰色球; 是怎么回事。。。。
: main函数要放在类里面
: ...................
话说,java的标识符可以用中文,没问题。
不仅美元符号$可以,人民币符号¥也可以做标识符。
【 在 ox 的大作中提到: 】
: 问题太多了。。。
: Thread 兰色球; 是怎么回事。。。。
: main函数要放在类里面
: ...................
好吧。。。
【 在 wks (cloverprince) 的大作中提到: 】
: 话说,java的标识符可以用中文,没问题。
: 不仅美元符号$可以,人民币符号¥也可以做标识符。
我已经改过来了,把main函数放在里面了。Canvas这个类不是本身都有吗?
import java.awt.*;
import java.lang.*;
import java.awt.event.*;
public class A extends Frame implements Runnable
{
Label myState;
Button b;
Thread ballThread,drawBox;
int x =20;
A()
{
myState = new Label();
add(myState,BorderLayout.SOUTH);
b = new Button("Move");
b.setBounds(20,40,60,60);
add(b);
drawBox = new Thread(this);
drawBox.start();
ballThread = new Thread(this);
ballThread.start();
}
public void run()
{
if(Thread.currentThread() == drawBox)
{
while(true)
{
x=x+5;
if(x>500)
{
x=20;
}
else
{
b.setBounds(x,40,60,60);
}
try
{
drawBox.sleep(200);
}
catch(InterruptedException ee)
{
}
}
}
else if(Thread.currentThread() == ballThread)
{
while(ballThread != null)
{
MyCanvas blue;
blue=new MyCanvas(Color.blue);
setLayout(null);
add(blue);
blue.setLocation(x,100);
try
{
ballThread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
}
class MyCanvas extends Canvas
{
Color c;
MyCanvas(Color c)
{
setSize(20,20);
this.c=c;
}
public void paint(Graphics g)
{
g.setColor(c);
g.fillOval(0,0,20,20);
}
}
public static void main(String args[])
{
new A();
}
}
这是我改后的,虽然不报错,可是编译不出来。因为是初学,所以很多不是很懂!麻烦各位了!
可以,但强烈不推荐吧
【 在 wks (cloverprince) 的大作中提到: 】
: 话说,java的标识符可以用中文,没问题。
: 不仅美元符号$可以,人民币符号¥也可以做标识符。
你得让画的控件显示出来啊。
比如在你A的构造函数最后,写一个 setVisible(true);
话说,你这个控件是不是没有指定大小啊,初始弹出来一个巨小的东西,还要自己把它resize大。