Hallo,
ich suche eine Möglichkeit (Quellcode-Ausschnitt), wie ich einen Kreis zeichnen kann (mit filloval, das klappt bereits), der aber dann beim Anklicken seine Farbe ändert.
Danke!
Hallo,
ich suche eine Möglichkeit (Quellcode-Ausschnitt), wie ich einen Kreis zeichnen kann (mit filloval, das klappt bereits), der aber dann beim Anklicken seine Farbe ändert.
Danke!
Nachtrag
Hier mal ein Code-Ausschnitt.
Ich zeichne in der Methode paint() zwei Kreise. Was ich bräuchte, wäre, daß sich die Farbe eines Kreises ändert, wenn ich ihn anklicke.
koorx und koory sind globale Variablen.
public boolean mouseDown(Event e,int x,int y)
{
koorx=x;
koory=y;
repaint();
return (true);
}
public void paint (Graphics g)
{
if(buffer==null){
buffer=createImage(this.getSize().width,this.getSize().height);
gBuffer=(Graphics2D)buffer.getGraphics();
}
//g.drawOval(x1,x1,30,30);
gBuffer.setColor(new Color(75,12,128));
gBuffer.fillOval(80,30,100,100);
gBuffer.setColor(new Color(28,40,128));
gBuffer.fillOval(30,30,50,50);
//gBuffer.drawLine(0,0,koorx,koory);
//g.drawString(„x1=“+x1,100,100);
g.drawImage(buffer,0,0,this);
//g.drawLine(30,50,60,50);
}
Ich zeichne in der Methode paint() zwei Kreise. Was ich
bräuchte, wäre, daß sich die Farbe eines Kreises ändert, wenn
ich ihn anklicke.
Na, so einfach ist das noch nicht. Du müsstest Dir die Koordinaten der Kreise merken und hinterher prüfen, ob der Mausklick im verwendeten Radius um diese Koordinaten liegt. Sollte das der Fall sein, zeichnest Du einfach auf den alten Koordinaten einen neuen Kreis mit einer anderen Farbe, fertig.
Der Kreis ist ja kein echtes Objekt (und kein GUI-Elemente), dass automatisch benachrichtig wird, wenn man es anklickt. Es ist einfach ein Farbklecks auf dem Graphics-Bereich.
Also du müsstest mit einem Mouseeventlistener überwachen, wann ein Aktion der Mouse passiert. Dann die getX und getY des Mousepunktes speichern. Diese mit einem Kreis vergleichen (>vohrer Punkt und radius speichern) und dann mit einer Repaint funktion die Farbe des Kreises verändern.
Ich muss zu hause mal raussuchen, wir haben in der Schule vor ein paar Monaten einen Kreiseditor geschrieben, der unter anderem, das was du dort machen möchtest gemacht hat, nur das wir fliegende Kreis vergrößert, verkleinert und die Farbe anhand der Mouserichtung verändert haben.
Aber da wird bestimmt die Funktion wie du sie brauchst dabei sein.
Also bis morgen noch warten. 
grüße Basti
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]