-1
在我的程序中,開始時我希望球停滯並在點擊鼠標時開始動作。如何將鼠標事件添加到Java中的繪圖對象?
我需要什麼樣的方法來跟進?
我嘗試以下操作:
public class Ball extends Applet implements Runnable{
int x=200;
int y=450;
int dx=10;
int dy=10;
int r=30;
private Image i;
private Graphics graph;
@Override
public void init() {
setSize(500,500);
}
@Override
public void start() {
Thread t1=new Thread(this);
t1.start();
}
@Override
public void run() {
while(true){
if(x+dx>this.getWidth()-r){
x=this.getWidth()-r;
dx=-dx;
}
else if(x+dx<0){
x=0;
dx=-dx;
}
else{
x+=dx;
}
if(y+dy>this.getHeight()-r){
y=this.getHeight()-r;
dy=-dy;
}
else if(y+dy<0){
y=0;
dy=-dy;
}
else{
y+=dy;
}
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
@Override
public void stop() {
}
@Override
public void destroy() {
}
@Override
public void update(Graphics g) {
//double buffering
if(i==null){
i=createImage(this.getSize().width,this.getSize().height);
graph=i.getGraphics();
}
graph.setColor(getBackground());
graph.fillRect(0, 0, this.getSize().width, this.getSize().height);
graph.setColor(getForeground());
paint(graph);
g.drawImage(i, 0, 0, this);
}
@Override
public void paint (Graphics g){
g.setColor(Color.PINK);
g.fillOval(x, y, r, r);
}
}
雖然此鏈接可以回答這個問題的對象,最好是在這裏有答案的主要部件,並提供鏈接以供參考。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/評論/低質量帖/ 14430918) – Aurora0001
我只是編輯它,希望這是好現在:-) – BinaryDump
現在這是一個更好的答案。順便說一下,當您在SO上修改您的帖子時,通常不需要包含「修改:」,這與其他網站不同,因此我已經爲您編輯了該文件,但您現在應該不在低質量文章過濾器中已經改進了這個職位。 – Aurora0001