Applet Überprüfen ob ein Objekt angeklickt wurde

sabsib

Neues Mitglied
Hallo 🙂ich hätte eine Frage, im Studium habe ich die Aufgabe bekommen eine Landschaft mit verschiedenen Klassen(Mond-,Baum und Sterne Klasse) in einem Applet darzustellen.
Beim anklicken des Baumes soll zum Beispiel der Baum umfallen. Wie schaffe ich es in der mouseClicked Methode zu prüfen ob der Baum angeklickt wurde?


public class Knut extends Applet implements MouseListener {

private static final long serialVersionUID = 1L;

static Baum baum1;
static Baum baum2;
static Baum baum3;
static Baum baum4;
static Baum baum5;

public void init(){

int []baumx1= {900,950,950,955,955,1000,980,990,970,980,960,970,950,930,940,920,930,910,920};
int []baumy1= {500,500,510,510,500,500,490,490,480,480,470,470,460,470,470,480,480,490,490};
int []baumx2= {500,550,550,555,555,600,580,590,570,580,560,570,550,530,540,520,530,510,520};
int []baumy2= {300,300,310,310,300,300,290,290,280,280,270,270,260,270,270,280,280,290,290};
int []baumx3= {750,800,800,805,805,850,830,840,820,830,810,820,800,780,790,770,780,760,770};
int []baumy3= {450,450,460,460,450,450,440,440,430,430,420,420,410,420,420,430,430,440,440};
int []baumx4= {200,250,250,255,255,300,280,290,270,280,260,270,250,230,240,220,230,210,220};
int []baumy4= {450,450,460,460,450,450,440,440,430,430,420,420,410,420,420,430,430,440,440};
int []baumx5= {100,150,150,155,155,200,180,190,170,180,160,170,150,130,140,120,130,110,120};
int []baumy5= {250,250,260,260,250,250,240,240,230,230,220,220,210,220,220,230,230,240,240};
int baumgroesse=10;

baum1=new Baum(baumx1,baumy1,baumgroesse);
baum2=new Baum(baumx2,baumy2,baumgroesse);
baum3=new Baum(baumx3,baumy3,baumgroesse);
baum4=new Baum(baumx4,baumy4,baumgroesse);
baum5=new Baum(baumx5,baumy5,baumgroesse);


Baum wald []= new Baum[5];
wald[0]=baum1;
wald[1]=baum2;
wald[2]=baum3;
wald[3]=baum4;
wald[4]=baum5;


this.addMouseListener(this);
.}

/**
* Zeichnen der Landschaft.
*
* Umsetzung der Methode
* @see java.awt.Component#paint(java.awt.Graphics)
*
* @param g Graphik-Kontext, auf dem die Landschaft gezeichnet wird
*/
public void paint(Graphics g){

baum1.draw(g);
baum2.draw(g);
baum3.draw(g);
baum4.draw(g);
baum5.draw(g);
}


/**
* Aufloesung der x, y-Position, an der Mausbutton betaetigt wurde.
*
* Umsetzung der Methode
* @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
*
* @param e Maus-Ereignis, das ausgeloest wurde
*/
public void mouseClicked(MouseEvent e){


x = e.getX(); // x-Koordinate, an der Mausereignis stattgefunden hat
y = e.getY(); // y-Koordinate, an der Mausereignis stattgefunden hat

// hier sollte dann der Maus-Event entsprechend verarbeitet werden


// nach jeder Veraenderung soll der Graphik-Kontext neu gezeichnet werden
repaint();
}

 
Zuletzt bearbeitet:
Bitte benutze code-tags, wenn du code postest.
Hierzu müssten wir wissen, wie die Klasse Baum implementiert ist.
Vermutlich gibt es dort ein Polynomobjekt, auf welchem man cointains aufrufen kann, und somit überprüfen kann, ob man auf den Baum geklickt hat.
Vielleicht hat der Baum dann sogar noch eine Methode, um das angezeigte Bild zu ändern.
 
Danke für die schnelle Antwort 🙂
Code Tags würde ich gerne benutzen weiß aber nicht wie . Ich bin erst seit ca. 30 Minuten in diesem Forum angemeldet🙁 deswegen schicke ich es jetzt noch einmal ohne.
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;

public class Baum {
private int []x;
private int []y;
private int groesse;
private int rabatt;
private boolean baumfaellt;
Random zufall1 = new Random();
int aktion=5+zufall1.nextInt(31);


public int[] getX() {
return x;
}

public int[] getY() {
return y;
}


public int getGroesse() {
return groesse;
}

public int getRabatt() {
return rabatt;
}


public boolean getBaumfaellt(int xKord, int yKord) {

return baumfaellt;

}

public void setX(int []x) {
this.x=x;
}

public void setY(int []y) {
this.y=y;
}

public void setGroesse(int groesse) {
this.groesse=groesse;
}

public void setRabatt(int rabatt) {
this.rabatt=rabatt;
}

public void setBaumfaellt(boolean baumfaellt) {
this.baumfaellt=baumfaellt;
}

public Baum (int []x,int [] y,int groesse) {
this.x=x;
this.y=y;
this.rabatt=aktion;
this.groesse=groesse;
this.baumfaellt= false;
}


public void baum (int rabatt,int[]x, int []y, int groesse) {
}

public void baumfaellt (int x, int y) {
}

public void draw(Graphics g){
g.setColor(Color.green);
g.fillPolygon(x, y, 19);

}
}
 

Zurück
Oben