Farbe ändern bei Klick auf einen Kreis

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich habe folgendes Testszenario kreiert, bei dem ich auf einen Kreis klicken möchte der dann die Farbe wechseln soll. Gibt es eine Möglichkeit dieses zu handhaben, in meinem Szenario mit dem Shape Rectangle2D?

Hier die entsprechende Klasse mit meine Auserarbeitung:
Code:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;

import javax.swing.*;

public class TestFenster extends JComponent implements MouseListener {

	Rectangle2D rect, rect1;

	Shape[] rects = { rect = new Rectangle2D.Double(10, 10, 100, 100),
			rect1 = new Rectangle2D.Double(200, 10, 100, 100), };

	public TestFenster() {
	}

	public void paint(Graphics g) {

		Graphics2D g2D = (Graphics2D) g;

		for (int i = 0; i < rects.length; i++) {
			g2D.setColor(Color.YELLOW);
			g2D.fill(rects[i]);
		}
		addMouseListener((MouseListener) this);
	}

	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		paint(g);
	}

	public void mousePressed(MouseEvent e) {
		int x = e.getX();
		int y = e.getY();
		if (rects[0].contains(x, y)) {
			System.out.println("test1" + x);
			System.out.println("test1" + y);
		}

	}

	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub

	}

}


Danke fuer eventuelle Unterstützung.

Grüsse
 
S

SlaterB

Gast
klappt denn das
System.out.println("test1" + x);
System.out.println("test1" + y);
schon?

setze an dieser Stelle eine Exemplarvariable auf die gewünschte Farbe,
rufe repaint() auf,
und in paint verwendest du keine feste Farbe, sondern die aus der Exemplarvariable
 

granini

Bekanntes Mitglied
Hi,

Danke fuer die schnelle Antwort. Die Koordinaten des Kreisen werden mir bei Mouseklick ausgegeben. Nur habe ich bei den Shapes keine Methode um die Farbe in der if-Abfrage direkt zu wechseln.

Und bei dem Vorschlag habe ich irgendwie noch ein Verständnisproblem, wie ich dann die exemplar-Variable in der Methode mousePressed übergebe..?

So, habe ich das erstmal verstanden:


Code:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;

import javax.swing.*;

public class TestFenster extends JComponent implements MouseListener {

	Rectangle2D rect, rect1;

	Shape[] rects = { rect = new Rectangle2D.Double(10, 10, 100, 100),
			rect1 = new Rectangle2D.Double(200, 10, 100, 100), };
	
	Color exemplar = Color.yellow;
	
	public TestFenster() {
	}

	public void paint(Graphics g) {

		Graphics2D g2D = (Graphics2D) g;

		for (int i = 0; i < rects.length; i++) {
			g2D.setColor(exemplar);
			g2D.fill(rects[i]);
		}
		addMouseListener((MouseListener) this);
	}

	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		paint(g);
	}

	public void mousePressed(MouseEvent e) {
		int x = e.getX();
		int y = e.getY();
		if (rects[0].contains(x, y)) {
			Color exemplar = Color.green;
			repaint();
			System.out.println("test1" + x);
			System.out.println("test1" + y);
		}

	}

	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub

	}

}
 
S

SlaterB

Gast
> Color exemplar = Color.green;

damit erzeugst du nur eine lokale Variable, schreibe
exemplar = Color.green;
dann wird die Exemplarvariable exemplar (nenne sie 'color') geändert und beim nächsten paint wird diese grüne Farbe verwendet
 

granini

Bekanntes Mitglied
Ja, klar.. Danke dir..

Hmm, aber der übermalt natürlich dann beide Rechtecke.. Sprich müsste ich für jedes Rechteck in meinem Array eine eigene Exemplarvariable generieren, und entsprechend überschreiben, richtig?
 
S

SlaterB

Gast
zwei Variablen wären schlecht zu handeln,
du hast ein Array der Sapes, also brauchst du ein passendes Color-Array,

die Krönung wäre eine eigene Klasse MyShape
mit Exemplarvariable Shape, Color und was immer noch dazukommt,

dann brauchst du nur ein Array, hast zusammen was zusammengehört
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Hatsi09 GUI Input Farbe ändern AWT, Swing, JavaFX & SWT 0
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
cool_brivk24 Swing Button Farbe ändern AWT, Swing, JavaFX & SWT 2
MaxG. Swing Farbe von Button beim drücken ändern AWT, Swing, JavaFX & SWT 4
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
krgewb Swing JTree - Farbe von nodes ändern AWT, Swing, JavaFX & SWT 4
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
Z Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern AWT, Swing, JavaFX & SWT 15
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
S Farbe ändern bei der paint-Methode AWT, Swing, JavaFX & SWT 5
S Farbe von JButton ändern AWT, Swing, JavaFX & SWT 5
T Jbutton Click farbe ändern AWT, Swing, JavaFX & SWT 4
B Cursor Farbe ändern AWT, Swing, JavaFX & SWT 6
T DefaultTableCellRenderer Farbe bestimmter Zelle ändern AWT, Swing, JavaFX & SWT 2
P JLabel Farbe/Bild ändern aus MouseListener heraus AWT, Swing, JavaFX & SWT 3
D JTabel: Überschrift, Abstand zwischen Tabellen, Spalten-Farbe ändern AWT, Swing, JavaFX & SWT 2
D Swing JTable, Zellen-Farbe über Koordinaten ändern AWT, Swing, JavaFX & SWT 9
D JTabbedPane - Farbe ändern im Bereich hinter den Reitern AWT, Swing, JavaFX & SWT 2
A SWT - Farbe von Text auf Label ändern AWT, Swing, JavaFX & SWT 2
D SWT TabItem Farbe der Schrift ändern AWT, Swing, JavaFX & SWT 3
N Farbe einer einzelnen Zeile einer JTable ändern AWT, Swing, JavaFX & SWT 10
G Farbe der Markierung einer Componente ändern AWT, Swing, JavaFX & SWT 2
J JTree - Farbe von nodes ändern AWT, Swing, JavaFX & SWT 2
A JProgressBar: Farbe im Windows Look&Feel ändern. AWT, Swing, JavaFX & SWT 1
E Spalten Farbe ändern AWT, Swing, JavaFX & SWT 3
B JFrame Farbe ändern AWT, Swing, JavaFX & SWT 15
G hintergrund farbe vom flow layout ändern AWT, Swing, JavaFX & SWT 2
X JButton in MetalButtonUI Farbe ändern lassen? AWT, Swing, JavaFX & SWT 7
L Die Farbe von JButton beim Klicken ändern? AWT, Swing, JavaFX & SWT 4
G Farbe einer JTable-Zeile von "Außen" ändern AWT, Swing, JavaFX & SWT 2
S Farbe einer Zelle in JTable ändern AWT, Swing, JavaFX & SWT 13
D Im JTable bei einzelnen Zellen die Farbe ändern AWT, Swing, JavaFX & SWT 3
M Farbe der Umrandung einer ausgwählten Zeile ändern (JTable) AWT, Swing, JavaFX & SWT 3
S JTable - farbe einer cell/row ändern, Hilfe please AWT, Swing, JavaFX & SWT 2
M Farbe eines Pixel im Image ändern AWT, Swing, JavaFX & SWT 1
Z JMenu und JMenuItem: MouseOver-Farbe ändern AWT, Swing, JavaFX & SWT 9
H Farbe einer Tabellenspalte ändern AWT, Swing, JavaFX & SWT 3
S Farbe des Frames ändern AWT, Swing, JavaFX & SWT 2
G JTable! Beim anklicken einer Zeile soll sich Farbe ändern! AWT, Swing, JavaFX & SWT 2
H JavaFX PixelWriter.setColor setzt Farbe nicht AWT, Swing, JavaFX & SWT 2
F Progressbar Farbe AWT, Swing, JavaFX & SWT 6
jojoge Wie erstelle ich runde Buttons mit Farbe? AWT, Swing, JavaFX & SWT 1
Kotelettklopfer Frame ändert Farbe nicht AWT, Swing, JavaFX & SWT 12
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
F Drag&Drop mit Transparenter Farbe bei PNG AWT, Swing, JavaFX & SWT 0
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
H JFreeChart BarDiagramm Balken der gleichen Serie unterschiedliche Farbe zuordnen AWT, Swing, JavaFX & SWT 2
R Farbe zu einem Eckpunkt generieren AWT, Swing, JavaFX & SWT 2
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
W Farbe des Fensters AWT, Swing, JavaFX & SWT 2
M Ausgabe der HSL oder RGB Zusammensetzung einer Farbe (JColorChooser AWT, Swing, JavaFX & SWT 1
C Arrow Farbe bei JComboBox AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
V LookAndFeel JSpinner Hintergrund Farbe mit Nimbus LaF AWT, Swing, JavaFX & SWT 0
X mouseover verändert ungewollt die farbe AWT, Swing, JavaFX & SWT 4
D Swing Farbe aus Pixel vom JFrame auslesen AWT, Swing, JavaFX & SWT 17
T Swing JScrollPane Farbe der Scrollbar AWT, Swing, JavaFX & SWT 3
J Swing Farbe wählen ohne JColorChooser 2 AWT, Swing, JavaFX & SWT 23
C AWT Wie setze ich die Farbe "leuchtetgrün"? AWT, Swing, JavaFX & SWT 4
B Swing Button Farbe AWT, Swing, JavaFX & SWT 3
M Hover-Farbe über Hintergrundfarbe legen AWT, Swing, JavaFX & SWT 3
N Farbe abziehen AWT, Swing, JavaFX & SWT 3
R Farbe von Buttons stimmt nicht AWT, Swing, JavaFX & SWT 2
Y LookAndFeel JTabbedPane: Tab-Farbe mit Nimbus setzen AWT, Swing, JavaFX & SWT 3
D JComboBox jedes Item mit einer anderen Farbe AWT, Swing, JavaFX & SWT 10
P 2D-Grafik Neue Farbe für einen Teilbereich einer Linie? AWT, Swing, JavaFX & SWT 8
K 2D-Grafik Fehler beim Farbe auslesen AWT, Swing, JavaFX & SWT 3
T JTable Zellen Farbe AWT, Swing, JavaFX & SWT 13
N SWT-Widgets in Farbe AWT, Swing, JavaFX & SWT 21
F JButton Text-Farbe bei Disabled AWT, Swing, JavaFX & SWT 2
C Farbe eines ToolTipTextes eines Buttons AWT, Swing, JavaFX & SWT 4
Q 3D-Grafik Cube Farbe setzen zur Laufzeit. AWT, Swing, JavaFX & SWT 10
I Schrift und Farbe formatieren, und zwar pro Linie... AWT, Swing, JavaFX & SWT 4
M Combobox soll Farbe einer Komponente setzen AWT, Swing, JavaFX & SWT 2
N Swing JEditorPane mit Farbe und Font AWT, Swing, JavaFX & SWT 2
chik Button beschriften und Farbe zufällig anordnen AWT, Swing, JavaFX & SWT 2
S JSlider Track Breite und Farbe AWT, Swing, JavaFX & SWT 2
L JFreeChart Farbe von Balken AWT, Swing, JavaFX & SWT 5
C Welche Farbe hat die Auswahl in einer JTable? AWT, Swing, JavaFX & SWT 2
O AWT Zeichne mit eigener Farbe AWT, Swing, JavaFX & SWT 3
S JSplitPane ändert Farbe nicht AWT, Swing, JavaFX & SWT 4
O Hgr- Farbe einer JTable ändert sich nicht AWT, Swing, JavaFX & SWT 11
V JComboBox - Farbe in der Auswalliste AWT, Swing, JavaFX & SWT 7
GambaJo Farbe eines JFrames AWT, Swing, JavaFX & SWT 2
K Icon auf JButton mit Wechsel der Farbe AWT, Swing, JavaFX & SWT 2
D Farbe bei einem JButton wechseln AWT, Swing, JavaFX & SWT 4
L Farbe des Auswahlrechtecks bei selektierter Tabellenzeile AWT, Swing, JavaFX & SWT 9
M JComboBox Selected-Background Farbe AWT, Swing, JavaFX & SWT 5
K Farbe eines Pixels in einem Bild AWT, Swing, JavaFX & SWT 7
I JLabel Farbe AWT, Swing, JavaFX & SWT 1
L wie setze ich die Farbe des Pfeils in einer JComboBox? AWT, Swing, JavaFX & SWT 5
G JOptionPane mit andere Farbe AWT, Swing, JavaFX & SWT 8
G JFrame und Farbe AWT, Swing, JavaFX & SWT 4
M Farbe eines strings in JTextArea AWT, Swing, JavaFX & SWT 2
F Farbe für den Hintergrund eine BorderLayout-Teils AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben