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();
}
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: