Hi liebe Com,
ich habe folgende Frage, von welcher ich nicht weiß wie ich sie einfach erklären soll,obwohl es wohl eine sehr simple Angelegeneheit ist:
Ich erstelle ein Frame auf dem die Oberfläche gezeichnet wird.Mithilfe von Buttons erzeuge ich neue Tower-Objekte die ich irgendwo auf die Oberfläche ziehen kann, und dort ablegen lasse.Jetzt möchte diesen neuen Objekten einen MouseListener hinzufügen, welcher darauf reagiert wenn ich diese Objekte mit der Maus anklicke.
Wie genau gehe ich da vor?Muss jedes Objekt der neu erstellten Klasse einen Maus Listener implementieren?Oder muss ich den MauListener des Frame benutzen und immer schauen wo genau sich der Zeiger gerade befindet?
Hier ein Teil des Codes zur erstellung der Tower-Objekte
lg Kooki
ich habe folgende Frage, von welcher ich nicht weiß wie ich sie einfach erklären soll,obwohl es wohl eine sehr simple Angelegeneheit ist:
Ich erstelle ein Frame auf dem die Oberfläche gezeichnet wird.Mithilfe von Buttons erzeuge ich neue Tower-Objekte die ich irgendwo auf die Oberfläche ziehen kann, und dort ablegen lasse.Jetzt möchte diesen neuen Objekten einen MouseListener hinzufügen, welcher darauf reagiert wenn ich diese Objekte mit der Maus anklicke.
Wie genau gehe ich da vor?Muss jedes Objekt der neu erstellten Klasse einen Maus Listener implementieren?Oder muss ich den MauListener des Frame benutzen und immer schauen wo genau sich der Zeiger gerade befindet?
Hier ein Teil des Codes zur erstellung der Tower-Objekte
Java:
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.Timer;
import java.awt.MouseInfo.*;
public class Towers extends Graphicelements implements ActionListener,MouseListener
{
Timer timer;
Rectangle2D.Double range;
public Shoots startShoot;
public int fireRate;
static public int actionRadius;
public int strenght;
public int whichTower;
public static int rememberEnemy=0;
public Towers(BufferedImage[] i,double x, double y, long delay, GamePanel p,boolean openField,int pwhichTower)
{
super(i, x, y, delay, p,openField);
whichTower = pwhichTower;
timer = new Timer(fireRate,this);
range = new Rectangle2D.Double(this.getX()-actionRadius, this.getY()-actionRadius, getWidth()+(2*actionRadius), getHeight()+(2*actionRadius));
}
lg Kooki
Zuletzt bearbeitet: