repaint verschiebt das Bild

Status
Nicht offen für weitere Antworten.

Paladin

Bekanntes Mitglied
Hi,

ich mache gerade ein paar erste Schritte mit Java2D. Als erstes Projekt versuche ich eine Art Amaturenbrett mit verschiedenen Tacho Anzeigern darzustellen. Die Tachonadeln der Tachos sind beweglich und können per Drag & Drop verändert werden.

Ich werde den Aufbau hier jetzt erstmal nur beschreiben ohne code abzudrucken.
Das JFrame habe ich folgendermaßen aufgebaut:

Ich habe ein Hauptpanel und mehrere Nebenpanels die per GridLayout auf dem Hauptpanel angeordnet werden.
Für alle Panels habe ich eine extra Klasse nach dem folgenden Schema geschrieben:

Code:
class Panelname extends JPanel {

    public Panelname() {

    }

    public void paintComponent(Graphics g) {
    
    //Hier male ich die entsprechenden Hintergrundgrafiken in die Panels

    }
}

Auf dem Hauptpanel habe ich nun das Hintergrundbild gezeichnet und auf den Nebenpanels die Tachos.
Die Nebenpanels habe ich mit setBackground(0,0,0,0) auf Transparent gesetzt.

Wenn ich jetzt für einen der Tachos die repaint() Methode aufrufe verschiebt sich aber leider der Teil des
Hintergrundbildes auf dem das entsprechende Nebenpanel steht.
Ich könnte das Problem beheben indem ich alle Elemente neuzeichne. Dies ist allerdings nicht gerade
ökonomisch und führt auch zu einer üblen Ruckelshow.

Daher habe ich die folgenden Fragen:

1) Warum verschiebt sich das Hintergrundbild und wie kann ich das verhindern?
2) Gibt es einen einfacheren und besseren Weg um ein solches Projekt umzusetzen?

Vielen Dank im voraus

Gruß

Paladin
 
B

Beni

Gast
Swing muss wissen, welche JComponenten transparent sind. Sag den Componenten mit "setOpaque( false )", dass man durch sie hindurchsieht.
 

Paladin

Bekanntes Mitglied
Hi Beni,

vielen Dank für die Hilfe.

Das Hintergrundbild wird jetzt nicht mehr verschoben. Allerdings verschieben sich jetzt komischerweise die
einzelnen Elemente des Tachos.

Der Tacho besteht aus 3 Bildern die ich übereinanderlege.
Bild1 = Der Tacho ohne Zeiger und Glasscheibe
Bild2 = Der Tachozeiger
Bild3 = Die Glasscheibe

Wie gesagt verschiebt sich jetzt das Hintergrundbild nicht mehr. Auch Bild 1 bleibt brav an seinem Platz.
Nur Bild2 und 3 verschieben sich ein bissel nach unten rechts.

Ne Ahnung woran das liegen könnte?

Hier ist ein Auszug aus dem Quelltext der für die Erstellung eines der Tachos verantwortlich ist.

Code:
	class TachoFibu extends JPanel {
				
		public TachoFibu() {
			this.addMouseMotionListener(new dragFibu());
			setOpaque(false);
		}
	
		public void paintComponent(Graphics g) { 
			super.paintComponent(g);
			Graphics2D g2 = (Graphics2D) g;
						
			if(fibu_zehntel<2.0) fibu_zehntel=2.0;
			if(fibu_zehntel>10.0) fibu_zehntel=10.0;
			if(fibu_rotation<-23) fibu_zehntel=2.0;
			if(fibu_rotation<=-20 && fibu_rotation>=-23) fibu_zehntel=3.0;
			if(fibu_rotation<=-15 && fibu_rotation>-20) fibu_zehntel=4.0;
			if(fibu_rotation<=-8 && fibu_rotation>-15) fibu_zehntel=5.0;
			if(fibu_rotation<=-4 && fibu_rotation>-8) fibu_zehntel=6.0;
			if(fibu_rotation<=1 && fibu_rotation>-4) fibu_zehntel=7.0;
			if(fibu_rotation<=7 && fibu_rotation>1) fibu_zehntel=8.0;
			if(fibu_rotation<=12 && fibu_rotation>7) fibu_zehntel=9.0;
			if(fibu_rotation<=18 && fibu_rotation>12) fibu_zehntel=10.0;
			if(fibu_rotation<=24 && fibu_rotation>18) fibu_zehntel=11.0;
			if(fibu_rotation<=32 && fibu_rotation>24) fibu_zehntel=12.0;
					
			AffineTransform aft_org = new AffineTransform();
			AffineTransform aft = new AffineTransform();
			aft.rotate ( Math.toRadians( fibu_rotation ), imageAxis_x_fibu, imageAxis_y_fibu);
			g2.drawImage(tacho_body_fibu, imagePos_x_fibu, imagePos_y_fibu, this);
					
			g2.setTransform ( aft );
			g2.drawImage(tacho_nadel_fibu, imagePos_x_fibu+51, imagePos_y_fibu+74, this);
			g2.setTransform ( aft_org );
			g2.drawImage(tacho_glass_fibu, imagePos_x_fibu+23, imagePos_y_fibu+21, this);
			
		}
		
	}

Gruß

Paladin
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Repaint flackert!!! Spiele- und Multimedia-Programmierung 1
K Flackern bei repaint Methode Spiele- und Multimedia-Programmierung 3
Y Problem mit repaint() in run() Spiele- und Multimedia-Programmierung 2
B Bilder in GUI ändern ohne repaint() Spiele- und Multimedia-Programmierung 6
M Scrolling Repaint Problem Spiele- und Multimedia-Programmierung 2
H Repaint-Problem mit Quaxlis Tutorial Spiele- und Multimedia-Programmierung 2
Steev Eigene Repaint-Logik Spiele- und Multimedia-Programmierung 17
S Animation mit repaint Spiele- und Multimedia-Programmierung 2
F Repaint Problem Spiele- und Multimedia-Programmierung 6
A Graphics2D. repaint() Spiele- und Multimedia-Programmierung 12
M repaint() ruckelt Spiele- und Multimedia-Programmierung 11
R Update und repaint() im ActionListener Spiele- und Multimedia-Programmierung 3
C repaint und tempo Spiele- und Multimedia-Programmierung 4
I ScaleInterpolator verschiebt Objekt immer in den Ursprung. Spiele- und Multimedia-Programmierung 2
B Bild wird nicht geladen Spiele- und Multimedia-Programmierung 4
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
J OpenGL Bild wird nicht richtig angezeigt Spiele- und Multimedia-Programmierung 2
S Wie kann ich ein Bild in einen Frame einfügen? Spiele- und Multimedia-Programmierung 2
U DPI von einem Bild definieren Spiele- und Multimedia-Programmierung 5
J Bild ohne Quallitätsverlust skalieren Spiele- und Multimedia-Programmierung 11
Silvascus Bild --> JFrame Hintergrund Spiele- und Multimedia-Programmierung 3
D getsubimage aus BufferedImage und Rueckwandlung in ein ImagePlus bild Spiele- und Multimedia-Programmierung 0
A Bild(sequenz) wird nicht geladen Spiele- und Multimedia-Programmierung 1
windl EXIFF Header in ein Bild schreiben Spiele- und Multimedia-Programmierung 0
L Bild in Richtung Maus drehen Spiele- und Multimedia-Programmierung 4
B Bild ohne Image auf die Festplatte streamen Spiele- und Multimedia-Programmierung 4
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
F [JMyron] Bild von int[] zu BufferedImage Spiele- und Multimedia-Programmierung 2
Hoppelmann Alphamap (Bild) für 3D-Terrain generieren Spiele- und Multimedia-Programmierung 2
K Bild von USB-Webcam über JMF Spiele- und Multimedia-Programmierung 2
M Farbwerte für Flächen aus einem Bild erkennen Spiele- und Multimedia-Programmierung 3
S Wolken Bild/Grafik vom Programm erstellen lassen Spiele- und Multimedia-Programmierung 11
P Bild Pixelweise auslesen Spiele- und Multimedia-Programmierung 13
K Bild berührt Bild Spiele- und Multimedia-Programmierung 29
aze Nicht rechteckiges Bild zeichnen Spiele- und Multimedia-Programmierung 5
A Bild einer Webcam auffangen Spiele- und Multimedia-Programmierung 20
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
lumo LWJGL - Bild rendern Spiele- und Multimedia-Programmierung 16
A .jpg-Bild auf andere Position verschieben Spiele- und Multimedia-Programmierung 4
F Bild im sourcecode Spiele- und Multimedia-Programmierung 32
F Bild einfärben Spiele- und Multimedia-Programmierung 5
J JOGL - Bild wird immer wieder weiß Spiele- und Multimedia-Programmierung 2
Q Rechteck in BIld suchen Spiele- und Multimedia-Programmierung 8
M Bild kopieren Spiele- und Multimedia-Programmierung 2
S Bild capturen mit direcShow Spiele- und Multimedia-Programmierung 2
B Character Bild links/rechts Spiele- und Multimedia-Programmierung 19
Developer_X Bild Größe einstellen Spiele- und Multimedia-Programmierung 2
ARadauer bild in bild suchen Spiele- und Multimedia-Programmierung 6
M 2D - Bild um y-Achse drehen Spiele- und Multimedia-Programmierung 9
S Bild spiegeln Spiele- und Multimedia-Programmierung 7
N Farberkennung und -ersetzung in einem Bild Spiele- und Multimedia-Programmierung 2
G Palette aus Bild extrahieren Spiele- und Multimedia-Programmierung 5
A Wasserzeichen auf Bild Spiele- und Multimedia-Programmierung 2
G Paintsurface ins Bild konvertieren Spiele- und Multimedia-Programmierung 8
M Sich nach links verschiebendes Bild Spiele- und Multimedia-Programmierung 2
F Bild generieren Spiele- und Multimedia-Programmierung 3
J Animation hinter transparentem Bild auf der GlassPane Spiele- und Multimedia-Programmierung 6
A Kein Bild Spiele- und Multimedia-Programmierung 3
T Bild als mehrdimesionaler Array Spiele- und Multimedia-Programmierung 4
H Bild von Webcam laden Spiele- und Multimedia-Programmierung 4
P Bild, Pixel- / Bereichsfarbe auslesen Spiele- und Multimedia-Programmierung 12
G start Bild einfrügen in ein Java Spiel Spiele- und Multimedia-Programmierung 7
Quaxli off-topic: HDR-Bild errechnen Spiele- und Multimedia-Programmierung 3
P linie in bild zeichnen Spiele- und Multimedia-Programmierung 2
G Auf Tastendruck bild verschieben Spiele- und Multimedia-Programmierung 5
O ich hab da ein problem mit nem bild Spiele- und Multimedia-Programmierung 8
C JPEG oder BMP Bild erstellen Spiele- und Multimedia-Programmierung 5
A Bild im Raum darstellen (Texture2D) Spiele- und Multimedia-Programmierung 4
V Wie berechnet man das Bild eines Schwarzen Loches in Java? Spiele- und Multimedia-Programmierung 10
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
N Bild zu zeichnen (drawImage) klappt nur manchmal?? Spiele- und Multimedia-Programmierung 8
S BMP-Bild Pixel für Pixel bearbeiten Spiele- und Multimedia-Programmierung 1
P 2D Bild drehen Spiele- und Multimedia-Programmierung 4
M durchsichtiges Bild nach clearRect Spiele- und Multimedia-Programmierung 8
M RGB-Bild in Graustufen-Bild umwandeln Spiele- und Multimedia-Programmierung 2
M Bild-Spiegelung mit Java! Spiele- und Multimedia-Programmierung 5
S Bild auf Bild = Nichts? Spiele- und Multimedia-Programmierung 3
S Bild in Speicherbild zeichnen = Nichts? Spiele- und Multimedia-Programmierung 3
N Bild im Panel ändern Spiele- und Multimedia-Programmierung 3
D nicht 4-eckiges bild auf Hintergrund bewegen Spiele- und Multimedia-Programmierung 2
R Bild drehen Spiele- und Multimedia-Programmierung 24
J Bild generieren Spiele- und Multimedia-Programmierung 5
X Bild auf aktueller position drehen Spiele- und Multimedia-Programmierung 2
K Java2d Bild als JPG oder so speichern Spiele- und Multimedia-Programmierung 10

Ähnliche Java Themen

Neue Themen


Oben