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
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