Swing Zeichnung auf Tab im Hintergrund wird nicht gezeichnet

punkt21

Mitglied
Hallo *,

ich habe folgendes Problem:
Für meine GUI verwende ich SWING. Nun habe ich 2 Tabs, einer auf dem ich eine Atkion ausführe und einen, auf dem nach dieser Aktion gezeichnet werden soll.
Der Code, in dem gezeichnet wird, wird ausgeführt.Beim Debuggen läuft er wie gewollt durch. Jedoch sehe ich, wenn ich auf den Tab wechsel, nicht die neue Zeichnung.
Ich will eine Laufzeit in ein Koordinatensystem einzeichnen. Einfach nur als waagerechten Strich auf einer bestimmte Höhe.

in der paint() methode, lasse ich mir die Graphics abspeichern via:
Java:
public void paint( Graphics g) {
	this.g = g.create();
	g.drawLine( startX, startY, startX, endY);
	g.drawLine( startX, endY, endX, endY);
}

Dann will ich nach dem Ereignis auf Tab 1 eine Zeichnung auf Tab 2 auslösen, was vom Code-Durchlauf her funktionieren müsste.

Java:
private void addGraph( Color c) {
	g.setColor( c);
		
	long highest = getHighestValue();
	g.drawLine(startX, y, endX, y);
		
	g.setColor( Color.BLACK);
}

Kann mir jemand weiterhelfen?

Danke und Gruß
 

Quaxli

Top Contributor
Ein paar Anmerkungen:

- in Swing überschreibt man nicht paint, sondern paintComponent
- dabei sollte man nicht vergessen, dies auch für die Vaterklasse aufzurufen (super.paintComponent)
- this.g = g.create() scheint mir ein wenig sinnlos, wenn die Paint-Methode doch ein paint-Objekt übergeben bekommt und zwar in jedem Fall das richtige
- ein Wechsel des Tabs erzeugt vermutlich einen repaint, wodurch Deine Zeichnung verloren geht.

Wie ich vorgehen würde:

Die zu zeichnenden Objekte, die im ersten Tab erzeugt werden, würde ich irgendwie "abspeichern". Entweder in geeignete Objekte, die in einer Collection gesammelt werden und auf die die Zeichenmethode des 2. Tabs zugreift oder man erzeugt ein Image und zeichnet direkt in dieses rein und der 2. Tab zeichnet dann nur noch das Image.
Zweiteres ist aber performancelastiger und wenn Du nur ein paar Linien zeichnen willst, würde ich eher den 1. Weg verfolgen.
 

punkt21

Mitglied
Danke für deine Antwort.
Ich wusste nicht, dass ich die Methode paintComponent() überschreiben musste. Wahrscheinlich wurde bei mir wohl gezeichnet. Aber Alles wurde würde übermalt, als ich den Reiter wieder in den Vordergrund geholt habe.
Jetzt funktionierts! Danke!
 

diel2001

Bekanntes Mitglied
Das sinnvollste wäre vielleicht wenn du in der PaintComponent methode soetwas machen würdest:
Java:
if(tabgeändert){
/zeichne dies
}
Und wenn etwas neugezeichnet werden soll, dass flag auf true setzen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
TheJavaKid Auf eine Zeichnung im Canvas reagieren AWT, Swing, JavaFX & SWT 13
F Zeichnung einem JPanel im Layoutmanager zuweisen AWT, Swing, JavaFX & SWT 3
A Swing Zeichnung wird nicht richtig dargestellt AWT, Swing, JavaFX & SWT 4
X JInternalFrame vor Java2D-Zeichnung langsam bzw. Gui friert ein AWT, Swing, JavaFX & SWT 1
F 2D-Grafik Panel-Zeichnung erscheint nicht AWT, Swing, JavaFX & SWT 7
M Zeichnung aktualisieren AWT, Swing, JavaFX & SWT 3
F Zeichnung von Kästchen mit Pfeilen... (Strukturdiagramm) AWT, Swing, JavaFX & SWT 3
O JPanel Zeichnung verschwindet AWT, Swing, JavaFX & SWT 4
F Zeichnung verschwindet bei Nutzung von einem Layout AWT, Swing, JavaFX & SWT 6
R Swing JTable: Eigene Zeichnung im Header AWT, Swing, JavaFX & SWT 11
T Zeichnen vieler Messwerte --> Zeichnung wird nie fertig AWT, Swing, JavaFX & SWT 4
N eine Zeichnung scrollbar machen AWT, Swing, JavaFX & SWT 4
G Zeichnung verschwindet nach verändern der Fenstergröße. AWT, Swing, JavaFX & SWT 2
J Größe einer Zeichnung anpassen AWT, Swing, JavaFX & SWT 2
F zeichnung nach bedingung mit weiß übermalen AWT, Swing, JavaFX & SWT 10
G SWT Graphics Zeichnung neu laden AWT, Swing, JavaFX & SWT 13
K Zeichnung verschwindet. AWT, Swing, JavaFX & SWT 21
B Nach dem Verdecken des Applets ist die Zeichnung weg AWT, Swing, JavaFX & SWT 14
frager2345 Bild aus Dateien lesen und als Hintergrund verwenden AWT, Swing, JavaFX & SWT 2
1 2D-Grafik Flackerndes Hintergrund AWT, Swing, JavaFX & SWT 1
ralfb1105 JavaFX HTTP Download task im Hintergrund innerhalb GUI AWT, Swing, JavaFX & SWT 70
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
C Java Hintergrund funktioniert nicht AWT, Swing, JavaFX & SWT 9
A Bilder als Hintergrund AWT, Swing, JavaFX & SWT 2
BobbGott durchsichtiges JTextField mit Hintergrund AWT, Swing, JavaFX & SWT 12
L JPanel zeichnet im Konstrukter erzeugten Hintergrund nicht AWT, Swing, JavaFX & SWT 10
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
T Hintergrund für GUI AWT, Swing, JavaFX & SWT 1
I 2D-Grafik Bilder Eingefügt, button jetzt im Hintergrund AWT, Swing, JavaFX & SWT 2
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
H Textfield bleibt im Hintergrund AWT, Swing, JavaFX & SWT 2
E JTable Hintergrund von geklickter Zelle ändern AWT, Swing, JavaFX & SWT 2
wolfgang63 JavaFX Transparenter Hintergrund aber sichtbare Buttons AWT, Swing, JavaFX & SWT 6
F 2D-Grafik Den Hintergrund loopen AWT, Swing, JavaFX & SWT 3
V LookAndFeel JSpinner Hintergrund Farbe mit Nimbus LaF AWT, Swing, JavaFX & SWT 0
O 2D-Grafik Bild abgeschnitten nach Rotation mit Affine Transform und Hintergrund Schwarz AWT, Swing, JavaFX & SWT 8
O Hintergrund von AffineTransfom (rotation) ändern AWT, Swing, JavaFX & SWT 0
D paintComponent() mit transparentem Hintergrund. AWT, Swing, JavaFX & SWT 0
C JFrame paint ohne hintergrund nutzen AWT, Swing, JavaFX & SWT 6
A Swing Paint mit Button Clear den Hintergrund säubern um wieder zeichnen zu können AWT, Swing, JavaFX & SWT 2
S Swing, Button benutzen zum Hintergrund wechseln AWT, Swing, JavaFX & SWT 3
N Swing microba - DatePicker: Feld-Hintergrund anpassen AWT, Swing, JavaFX & SWT 2
M Tastatureingabe im Hintergrund (JTable) AWT, Swing, JavaFX & SWT 2
B Hintergrund laden AWT, Swing, JavaFX & SWT 3
B Swing Zähler im Hintergrund falsch berechnet - Warum? AWT, Swing, JavaFX & SWT 3
J JButton Hintergrund AWT, Swing, JavaFX & SWT 5
L Gradient Hintergrund malen und durchscheinen lassen AWT, Swing, JavaFX & SWT 8
K Swing JTable Text im Hintergrund einer leeren Tabelle AWT, Swing, JavaFX & SWT 3
L Beim Neuzeichnen einer Swing GUI kurz Schwarzer Hintergrund AWT, Swing, JavaFX & SWT 8
D Swing Probleme bei transparenten Hintergrund im JTextField AWT, Swing, JavaFX & SWT 6
J Swing Malen auf JPanel mit transparentem Hintergrund AWT, Swing, JavaFX & SWT 21
S 2D-Grafik Bild bleibt im Hintergrund bei Diashow AWT, Swing, JavaFX & SWT 3
D Applet hintergrund wird nicht weiß AWT, Swing, JavaFX & SWT 2
B JList transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
E Swing JPanel mit Hintergrund AWT, Swing, JavaFX & SWT 3
L Bilder im JPanel als Hintergrund - Swing AWT, Swing, JavaFX & SWT 2
kniffel GUI-Applet JTable füllt Hintergrund völlig aus AWT, Swing, JavaFX & SWT 4
J Hintergrund Label-Frame AWT, Swing, JavaFX & SWT 3
A Hintergrund von einem Frame ändern AWT, Swing, JavaFX & SWT 3
T Hintergrund AWT, Swing, JavaFX & SWT 4
T Hintergrund für 3D Erde AWT, Swing, JavaFX & SWT 4
G 2D-Grafik BufferedImage Hintergrund immer schwarz AWT, Swing, JavaFX & SWT 4
J Label mit transparentem hintergrund - geht das? AWT, Swing, JavaFX & SWT 21
B AWT Bild als Hintergrund im Applet AWT, Swing, JavaFX & SWT 2
R Bedeckter Hintergrund AWT, Swing, JavaFX & SWT 17
D Komponenten um weitere Hintergrund- bzw. Vordergrundfarbe erweitern AWT, Swing, JavaFX & SWT 11
M JFrame (Mausrad, Hintergrund) AWT, Swing, JavaFX & SWT 13
Dragonfire Swing Hintergrund aller Komponenten verändern AWT, Swing, JavaFX & SWT 2
DStrohma Swing JPanel mit Bild als Hintergrund AWT, Swing, JavaFX & SWT 2
B Swing Image als Hintergrund im JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
N GridBagLayout, leere grids (Hintergrund) transparent? AWT, Swing, JavaFX & SWT 3
J Swing JPanel mit Hintergrund zeigt componente nicht AWT, Swing, JavaFX & SWT 6
E einfache Frage:warum ist Hintergrund grau ? AWT, Swing, JavaFX & SWT 24
algorismi JCompnent mit transparentem Hintergrund AWT, Swing, JavaFX & SWT 4
T Schließen eines JDialogs setzen den JFrame in den Hintergrund AWT, Swing, JavaFX & SWT 2
J CellRenderer einzelne zellen Hintergrund AWT, Swing, JavaFX & SWT 9
R JTable Hintergrund der Zeile abhängig von Inhalt einer Zelle verändern AWT, Swing, JavaFX & SWT 3
E Progress Bar mit Bild als Hintergrund AWT, Swing, JavaFX & SWT 2
N Swing Hintergrund Bild in JAR Datei AWT, Swing, JavaFX & SWT 2
N im fenster ein hintergrund bild einfügen AWT, Swing, JavaFX & SWT 18
A Swing Mit Graphics2D auf transparentem Hintergrund zeichnen AWT, Swing, JavaFX & SWT 7
A Hintergrund erstellen AWT, Swing, JavaFX & SWT 13
J Layer von JLayeredPane unsichtbar durchsichtig in den Hintergrund AWT, Swing, JavaFX & SWT 5
T GridLayout Zeilen Hintergrund AWT, Swing, JavaFX & SWT 5
P Swing JComboBox beschädigt hintergrund AWT, Swing, JavaFX & SWT 4
S JButton - Hintergrund verändern AWT, Swing, JavaFX & SWT 7
J Fensterrand überdeckt Hintergrund AWT, Swing, JavaFX & SWT 9
K JTable hintergrund AWT, Swing, JavaFX & SWT 12
SebSnake Animiertes GIF auf JPG Hintergrund darstellen? AWT, Swing, JavaFX & SWT 3
G Label auf Panel auf Panel mit Grafiken als Hintergrund (awt) AWT, Swing, JavaFX & SWT 7
G TextField im Hintergrund AWT, Swing, JavaFX & SWT 2
O Zweifarbiger Hintergrund in einer TableCell? AWT, Swing, JavaFX & SWT 4
R Bilder als Hintergrund für Swing - Komponenten AWT, Swing, JavaFX & SWT 3
R HTML Hintergrund für Swing - Componenten AWT, Swing, JavaFX & SWT 2
0 JTable - Hintergrund Tabellen statt Grau AWT, Swing, JavaFX & SWT 5
V JButton in Hintergrund zwingen? AWT, Swing, JavaFX & SWT 14
G Hintergrund AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben