Kreise anklicken (Farbänderung)

Mulan

Mitglied
Hallo,

ich möchte gerne in ein Panel x- Kreise zeichnen. Wobei die Anzahl der Kreise dem Konstruktor übergeben wird, den Wert habe ich in der Variable anzahl gespeichert. Ich habe dazu folgende Imports in meiner Klasse:
[JAVA=42]
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
[/code]
Und folgende Methode:
[JAVA=42]
public void paintComponentent(Graphics g)
{
super.paintComponent(g);
kreispanel.add(g);
for (int i = 1; i < anzahl; i++)
{
g.drawOval(40*i, g.getY(),40,40);
g.setColor(Color.white);
g.addMouseMotionListener(new MyMotionListener ()) ;
}
}
[/code]
Jetzt würde ich gerne, wenn man auf einen Kreis klickt diesen Kreis Schwarz färben. Dafür habe ich in einer anderen Klasse (implements MouseListener) folgende Methodenüberschreibung durchgeführt.
[JAVA=42]
public void mouseClicked(MouseEvent arg0)
{
Graphics g=getGraphics();
// g.getY(); sollte den Wert für y des Panels liefern
int radius = 20;
g.drawOval(40*i,g.getY(),40,40);
g.setColor(Color.black);
g.fillOval(e.getX()-radius,g.getY(),40,40);
}
[/code]
Aber das funktioniert natürlich nicht, wie es soll (oder auch überhaupt). Ich komme nicht drauf, wie ich erkenne, welchen der Kreise ich ausgewählt habe.
Irgendwie müsste das doch mit den Koordinaten und dem Radius zusammenhängen….
Hat jemand einen Tipp für mich?

Viele Grüße
Mulan
 
S

SlaterB

Gast
niemals getGraphics() aufrufen,
setze irgendwo die Info (*) und rufe repaint() auf, damit in geordneten Bahnen der Kreis neu in der richtigen Farbe gemalt wird,

(*) für die Mausberechnung brauchst du sowieso ein richtiges Hintergrundmodell, erstelle eine Klasse für Kreise mit Position und Farbe,
die Mausposition vergleiche mit allten Positionen bekannter Objekte, dann weißt du welches gerade unter der Maus liegt,
dort dann die Farbe ändern und repaint(), welches eben alle Objekte passend malt


------

in paintComponent keine Listener adden oder removen, das passiert einmal am Anfang,
und in diesem Fall auch nicht in einer Schleife sonst hast du bei einem Klick zig Listener, die dieselbe Aktion ausführen,
g.addMouse..() gibts doch auch gar nicht?!

> kreispanel.add(g);
sieht auch höchst verdächtig aus..
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Hough-Transformation für Kreise und andere Formen AWT, Swing, JavaFX & SWT 3
G AWT AWT Kreise permanent anzeigen AWT, Swing, JavaFX & SWT 3
C JavaFX mehrere Kreise nach Eingabeprozess ausgeben AWT, Swing, JavaFX & SWT 2
P Bestimmte Kreise färben AWT, Swing, JavaFX & SWT 3
wolfgang63 JavaFX Animation, Kreise im vorgegebem Takt durchs Fenster laufen lassen AWT, Swing, JavaFX & SWT 3
J Swing Bild laden, Kreise drin malen, Schreiben AWT, Swing, JavaFX & SWT 2
M Kreise zeichnen AWT, Swing, JavaFX & SWT 6
U Swing Generierung mehrerer Kreise per MouseListener AWT, Swing, JavaFX & SWT 16
E Swing Rechteck und Kreise verschieben AWT, Swing, JavaFX & SWT 3
P Kreise Rechtecke AWT, Swing, JavaFX & SWT 5
G Swing Kreise auf JPanel zeichnen AWT, Swing, JavaFX & SWT 11
1 GeneralPath-Kreise werden keine Kreise AWT, Swing, JavaFX & SWT 2
M In einem JLabel Kreise zeichnen AWT, Swing, JavaFX & SWT 4
Hatsi09 JComponent anklicken und "entklicken" AWT, Swing, JavaFX & SWT 7
CptK Point2D.Double Kurven - Beschriftung und richtiges Anklicken AWT, Swing, JavaFX & SWT 7
Z Swing Button anklicken und bewegen AWT, Swing, JavaFX & SWT 2
M Combobox bild anklicken AWT, Swing, JavaFX & SWT 2
G Menübar anklicken und Inhalt entsprechend wechseln AWT, Swing, JavaFX & SWT 4
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
J gezeichnetes Objekt anklicken AWT, Swing, JavaFX & SWT 10
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
F ToolTip mit Link zum anklicken AWT, Swing, JavaFX & SWT 2
V Swing JButton ohne Border bei Anklicken AWT, Swing, JavaFX & SWT 3
GianaSisters jList nur einmal ein Element anklicken AWT, Swing, JavaFX & SWT 3
F Swing Button reagiert erst beim mehrmaligen Anklicken AWT, Swing, JavaFX & SWT 6
C JList: Eintrag anklicken & JTextfield mit Text aus MySQL füllen? (Screenshot dabei) AWT, Swing, JavaFX & SWT 8
Bierhumpen Linien anklicken? AWT, Swing, JavaFX & SWT 9
G JOptionPane mit link zum anklicken AWT, Swing, JavaFX & SWT 4
F Häkchen erscheint nicht bei anklicken von Checkbox in JTable AWT, Swing, JavaFX & SWT 4
A Aktion beim anklicken einer Zeile in einer Tabelle ausführen AWT, Swing, JavaFX & SWT 4
T Labels gleichzeitig bewegen und anklicken AWT, Swing, JavaFX & SWT 3
M ToolTipText für JTable mit MouseListener ohne anklicken? AWT, Swing, JavaFX & SWT 7
M Linien zeichnen und anklicken AWT, Swing, JavaFX & SWT 2
J Anklicken der Symbolleiste und Neuzeichnen des Buttons AWT, Swing, JavaFX & SWT 6
G JSpinner bringt bei anklicken eine CastException AWT, Swing, JavaFX & SWT 5
G JTable! Beim anklicken einer Zeile soll sich Farbe ändern! AWT, Swing, JavaFX & SWT 2
R Farbänderung von Komponenten wird nicht wirksam AWT, Swing, JavaFX & SWT 7
G Farbänderung AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben