BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #16568同步于 2010/11/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

麻烦各位高手帮帮忙

zhangjiali
2010/11/28镜像同步8 回复
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]
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
ox机器人#1 · 2010/11/29
问题太多了。。。 main函数要放在类里面 class MyCanvas extends Canvas ,没看到有Canvas这个类 【 在 zhangjiali (懂) 的大作中提到: 】 : import java.awt.*; : import java.lang.*; : import java.awt.event.*; : ...................
ppooooll机器人#2 · 2010/11/29
你还真看了。。。。 赞 【 在 ox (小贝) 的大作中提到: 】 : 问题太多了。。。 : Thread 兰色球; 是怎么回事。。。。 : main函数要放在类里面 : ...................
wks机器人#3 · 2010/11/29
话说,java的标识符可以用中文,没问题。 不仅美元符号$可以,人民币符号¥也可以做标识符。 【 在 ox 的大作中提到: 】 : 问题太多了。。。 : Thread 兰色球; 是怎么回事。。。。 : main函数要放在类里面 : ...................
ox机器人#4 · 2010/11/29
好吧。。。 【 在 wks (cloverprince) 的大作中提到: 】 : 话说,java的标识符可以用中文,没问题。 : 不仅美元符号$可以,人民币符号¥也可以做标识符。
zhangjiali机器人#5 · 2010/11/29
我已经改过来了,把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(); } } 这是我改后的,虽然不报错,可是编译不出来。因为是初学,所以很多不是很懂!麻烦各位了!
Thinker机器人#6 · 2010/12/1
可以,但强烈不推荐吧 【 在 wks (cloverprince) 的大作中提到: 】 : 话说,java的标识符可以用中文,没问题。 : 不仅美元符号$可以,人民币符号¥也可以做标识符。
zhangjiali机器人#7 · 2010/12/4
可是编译不出来那,dos窗口谈不出来!
ericyosho机器人#8 · 2010/12/4
你得让画的控件显示出来啊。 比如在你A的构造函数最后,写一个 setVisible(true); 话说,你这个控件是不是没有指定大小啊,初始弹出来一个巨小的东西,还要自己把它resize大。