那位高手给小弟指点哈下边这个程序怎么在没有达到预期的功能。
功能:实现多个小球的运动,开始时没有小球,每单击一次鼠标增加一个小球。注:现在只完成了一个小球的运动,执行多次调用内部类就可以实现其它小球
package eleven;import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;public class Eleven extends Applet {
int dx = 5, dy = 5;
int rgb = 0;
int x = 60;
int y = 100;
Color color = new Color((int)(Math.random() * 0xFFFFFF)); public static void main(String[] args) {
Eleven e = new Eleven();
} public Eleven(){
setSize(350, 350);
setBackground(Color.gray);
this.addMouseListener(new MouseAdapter(){
@Override
public void mousePressed(MouseEvent e){
new PaintRound();
}
});
this.setLayout(null);
setVisible(true);
}
class PaintRound implements Runnable{ public PaintRound(){
Thread t = new Thread(this);
t.start();
}
public void doColor() {
rgb = (int)(Math.random()*0xFFFFFF);
color = new Color(rgb);
}
public void run() {
while (true) {
if (x <= 0) {
dx = -dx;
doColor();
ThreadGroup tg = new ThreadGroup("first"); }else if ((x + 50) >= new Eleven().getWidth()) {
dx = -dx;
doColor();
}
if (y <= 0) {
dy = -dy;
doColor();
}else if ((y + 50) >= new Eleven().getHeight()){
dy = -dy;
doColor();
}
x = x + dx;
y = y + dy;
try {
Thread.sleep(50);
repaint();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void paint( Graphics g) {
Color c = g.getColor();
g.setColor(Color.white);
g.fillOval(x, y, 50, 50);
g.setColor(c);
}
}
}
功能:实现多个小球的运动,开始时没有小球,每单击一次鼠标增加一个小球。注:现在只完成了一个小球的运动,执行多次调用内部类就可以实现其它小球
package eleven;import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;public class Eleven extends Applet {
int dx = 5, dy = 5;
int rgb = 0;
int x = 60;
int y = 100;
Color color = new Color((int)(Math.random() * 0xFFFFFF)); public static void main(String[] args) {
Eleven e = new Eleven();
} public Eleven(){
setSize(350, 350);
setBackground(Color.gray);
this.addMouseListener(new MouseAdapter(){
@Override
public void mousePressed(MouseEvent e){
new PaintRound();
}
});
this.setLayout(null);
setVisible(true);
}
class PaintRound implements Runnable{ public PaintRound(){
Thread t = new Thread(this);
t.start();
}
public void doColor() {
rgb = (int)(Math.random()*0xFFFFFF);
color = new Color(rgb);
}
public void run() {
while (true) {
if (x <= 0) {
dx = -dx;
doColor();
ThreadGroup tg = new ThreadGroup("first"); }else if ((x + 50) >= new Eleven().getWidth()) {
dx = -dx;
doColor();
}
if (y <= 0) {
dy = -dy;
doColor();
}else if ((y + 50) >= new Eleven().getHeight()){
dy = -dy;
doColor();
}
x = x + dx;
y = y + dy;
try {
Thread.sleep(50);
repaint();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void paint( Graphics g) {
Color c = g.getColor();
g.setColor(Color.white);
g.fillOval(x, y, 50, 50);
g.setColor(c);
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货