当前位置: 代码迷 >> J2SE >> java se,该如何解决
  详细解决方案

java se,该如何解决

热度:31   发布时间:2016-04-24 01:02:33.0
java se
编写一个Java Applet程序,在Applet内部现实一个蓝色反弹球的程序。
通过mousePressed时间使该球开始运动,当球撞击Applet边框时,它应从边框弹回并以相反的方向运动。

------解决方案--------------------
Java code
import java.applet.Applet;import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.ArrayList;import java.util.List;import java.awt.*;import java.awt.event.*;import java.awt.Graphics;public class Main extends Applet implements Runnable,MouseListener{    int x = 60, y = 100;    int dx = 5, dy = 5;    int rgb = 0;    Color color = new Color((int)(Math.random() * 0xFFFFFF));    public static void main(String[] args) {        new Main();    }    public Main(){        setSize(350, 350);        setBackground(Color.gray);        this.addMouseListener(this);        this.setLayout(null);        setVisible(true);                    }    public void doColor() {        rgb = (int)(Math.random()*0xFFFFFF);        color = new Color(rgb);    }    public void run() {        while (true) {            if (x <= 0) {                dx = -dx;                dy = -dy;                doColor();            }else if ((x + 50) >= this.getWidth()) {                dx = -dx;                dy = -dy;                doColor();            }            if (y <= 0) {                dx = -dx;                dy = -dy;                doColor();            }else if ((y + 50) >= this.getHeight()){                dx = -dx;                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);        g.fillOval(x, y, 50, 50);        g.setColor(c);    }        @Override    public void mouseClicked(MouseEvent e) {            }    @Override    public void mousePressed(MouseEvent e){        System.out.print(this);        new Thread(this).start();    }    @Override    public void mouseReleased(MouseEvent e) {            }    @Override    public void mouseEntered(MouseEvent e) {        // TODO Auto-generated method stub            }    @Override    public void mouseExited(MouseEvent e) {            }}
  相关解决方案