Farbe ändern bei der paint-Methode

Scratchy

Mitglied
Hallo,

ich wollte ein JFrame zeichnen, was ein bewegenden Punkt zeigt. Dieser Punkt soll nach einer bestimmten Koordinate die Farbe ändern. Leider weiß ich nicht, wie man von einer anderen Methode auf die paint-Methode zugreift bzw. ob die überhaupt möglich ist.

Danke für eure Hilfe



Hier der Code
Java:
package gui;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Punkte_Test extends JPanel{

	private JFrame f;
	static int x = 10;
	static int y = 10;
	
	public Punkte_Test() {
		f = new JFrame("Bewegung");
		f.setSize(500,500);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.add(this);
		f.setBackground(Color.white);
		f.setVisible(true);
		Funtion();
	}
	

	private void Funtion() {
				try {
					while(x < 300){
						x = x + 5;
						if(x > 20){
							g.setColor(Color.red); // <-- Hier liegt das Problem
							f.repaint();
						}else{
							f.repaint();
						}
						Thread.sleep(500);
					}
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				
	}


	public void paint(Graphics g){
		g.setColor(Color.blue);
		g.drawLine(x+5,y,x,y);
		
	}
	
	
	
	public static void main(String[] args)  {
		new Punkte_Test();
	}


}
 

Gucky

Top Contributor
Irgendwie machst du es, dass die ändernde Methode an die Graphics Variable ran kommt und von da setzt du die Farbe mit g.setColor(Color) auf irgendwas.
 

kaoZ

Top Contributor
du schreibst z.B eine Methode die als Parameter ein Graphics Object und ggf. die Koordinaten erwartet und als Rückgabewert eine neue Farbe hat, und übergibst dies dann in der paint Methode an deine neu erstellte Methode, in welcher dann z.B geprüft wird ob eine Bedingung eintritt und eine dementsprechende Farbe zurückliefert mit welcher dann weiter gezeichnet werden soll

da du in Java nur passiv zeichnest würde ich es vermeiden aktiv eine neue Methode zu nutzen die über getGraphics() an das Graphics Object kommt.. das ist nämlich äußert unschön.

Dazu gibt es hier in einem der Blogs ( von Turtle wenn mich nicht alles täuscht ) einen eintrag.
 
Zuletzt bearbeitet:

turtle

Top Contributor
Ich verstehe es nicht.

Was spricht gegen?
Java:
    public void paint(Graphics g) {
	g.setColor(Color.blue);
	if (x > 200) {
	    g.setColor(Color.red);
	}
	g.drawRect(x, y, 15, 15);
    }
 

kaoZ

Top Contributor
Das ist eine gute Frage :)

Die allerdings nur der To beantworten kann ^^

Ich habe mich lediglich am Vorpost orientiert , muss ich zugeben .....
 

Decline

Mitglied
Wenn du mit Swing arbeitest solltest du (fast) immer die Methode paintComponent() überschreiben und nicht paint() wenn du nur Dinge auf die Komponente zeichnen willst undn icht mehr machen willst.
paint() macht mehr als nur die Komponente zu zeichnen (Achtung: wenn du mit AWT Elementen arbeitest gilt das nicht, den genauen Unterschied weiß ich gerade nicht ohne nachzulesen.)

Auserdem solltest du generell super.paintComponent(g) aufrufen, es sei den du möchtest dies aus irgend einem grund nicht tun.

mehr informationen falls es dich interssiert:
Painting in AWT and Swing
 
Ä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 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
G Farbe ändern bei Klick auf einen Kreis AWT, Swing, JavaFX & SWT 5
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