Zeichnung verschwindet.

Status
Nicht offen für weitere Antworten.
K

kali

Gast
hallo liebe programmierer!

ich habe ein problem und zwar:

Ich habe eine kleine swing-applikation programmiert in der ich auf einen jframe zeichne.
Mein problem ist nun, dass wenn ich das fenster aus dem bildschirm hinaus- und wieder zurückziehe der teil der draußen war nicht mehr wieder gezeichnet wird! dieser teil ist somit verloren!

was kann ich denn dagegen machen?
hab mal was von doublebuffering gehört, allerdings hab ich keine ahnung wie das funktioniert und ob mir das überhaupt hilft.

danke im voraus
mfg kali
 
K

kali

Gast
ich erspare euch lieber den code:

aber ganz einfach:

Ich lege mit ein graphics objekt an -
Code:
Graphics g = this.getGraphics;
- und z.B. mit
Code:
g.drawLine(....)
zeichne ich dann auf meinen JFrame.
Also ganz primitives Zeichnen ;)

genügt das fürs erste mal?

danke schon mal
mfg kali[/code]
 

Bert Brenner

Bekanntes Mitglied
mach besser folgendes

Code:
public void paintComponent(Graphics g){
  //hier zeichnest du dann
}

und vergiss das getGraphics.

PS: paintComponent brauchst du nicht selbst aufrufen, sonder das geschieht automatisch wenn dein JFrame neu gezeichnet werden muss.
 
K

kali

Gast
dann muss ich aber wiederum von JPanel ableiten und nicht von JFrame!

oder?
 
K

kali

Gast
allerdings zeichne ich in verschiedenen funktionen... und das funktioniert dann nicht so ganz.

und das automatische aufrufen funktioniert auch nicht wirklich...

mfg kali
 
K

kali

Gast
ein beispielcode für die verwendung von
Code:
paintComponents(Graphics g)
wäre nett!
weil bei mir das nicht wirklich funktioniert...

danke kali
 
K

kali

Gast
falls du auf das S anspielen möchtest!

kann ich nur sagen, dass keine Funktion paintComponent(...) existiert.
zumindest kennt mein Eclipse bzw. die Klasse Container welche von Component ableitet kein paintComponent(...)
sondern eben nur ein paintComponents(...)
demnach gehe ich davon aus, dass man es mit s schreibt.

;)
 

Wildcard

Top Contributor
Bei einem JFrame müsstest du AWT-like die paint Methode überschreiben.
Ist aber sehr unschön. Besser auf eine JComponent zeichnen und dort paintComponent überschreiben.
 
K

kali

Gast
nachdem mir wie oben zu lesen gesagt wurde, dass es auch mit einem JFrame geht versuche ich dies auch weiterhin.
soweit ich bis jetzt herausgefunden habe funktioniert das ganz mit paintComponent(...) nur mit einem JPanel und nicht mit einem JFrame... wo wir wieder bei der Frage wären ob das ganze mit einem JFrame wirklich ordentlich funktioniert oder nicht

:)
 

Wildcard

Top Contributor
Wie gesagt: Man kann direkt auf einen JFrame zeichnen in dem man paint überschreibt, sollte es aber nicht tun da JFrame Heavyweight und daher etwas anders als die anderen Swing Komponenten ist.
 
K

kali

Gast
kann ich auf einem JPanel auch beinahe die selben funktionen nutzen wie auf einem JFrame, wie z.b. auf mausklick reagieren und dann dort etwas zeichnen usw...

kali
 

Wildcard

Top Contributor
Wenn du selbst zeichnen willst brauchst du kein JPanel, JComponent reicht völlig, und ja, kannst du.
 
K

kali

Gast
irgendwie reagiert er aber auf meine tastatureingaben nicht!

und ich habe noch eine frage... wenn ich nun in mehreren funktionen etwas zeichne, was eben von den mausklicks abhängt, wie kann ich auch das wiederherstellen?

kali
 

Wildcard

Top Contributor
Nur Komponenten die den Focus haben erhalten KeyEvents.

Bitte? Du zeichnest nur in einer Methode: paintComponent(Graphics g)
Und was meinst du mit 'wiederherstellen' :?:
 
K

kali

Gast
ok:
Als erstes zeichne ich in meinem Programm ein Koordinatensystem.
Je nach dem wo ich mit der Maus hinklicke soll ein Feld im Koordinatensystem ausgefüllt werden.
Eben jenes in welches ich geklickt habe.
Wie kann ich also in einer beliebigen Funktion z.B. mouseClicked(...) zeichnen wenn es benötigt wird.

und mit wiederherstellen meine ich wenn es einmal aus dem bildschirm hinausgeschoben wurde und wieder zurück, dass es wieder angezeigt wird.

aber gut war auch wirklich nicht eindeutig... sry

also muss ich dem component den focus geben wenn ich das richtig verstanden habe...

kali
 

Wildcard

Top Contributor
Falscher Ansatz. Du zeichnest passiv in Java. Daher brauchst du ein Datenmodell das dir erlaubt deine Zeichnung zu jedem Zeitpunkt zu wiederholen (in deinem Fall also sowas wie eine Liste mit Punkten). In paintComponent wird dann der aktuelle Zustand des Modells gezeichnet.
 
K

kali

Gast
ja an so etwas hab ich schon gedacht...
das ganze ist also doch umständlicher als angenommen...

naja danke fürs erste. vl fällt mir ein bisschen später noch was ein.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O JPanel Zeichnung verschwindet AWT, Swing, JavaFX & SWT 4
F Zeichnung verschwindet bei Nutzung von einem Layout AWT, Swing, JavaFX & SWT 6
G Zeichnung verschwindet nach verändern der Fenstergröße. AWT, Swing, JavaFX & SWT 2
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
P Swing Zeichnung auf Tab im Hintergrund wird nicht gezeichnet AWT, Swing, JavaFX & SWT 3
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
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
B Nach dem Verdecken des Applets ist die Zeichnung weg AWT, Swing, JavaFX & SWT 14
DonBronson Gezeichnetes Objekt verschwindet nachdem erneut gezeichnet wird AWT, Swing, JavaFX & SWT 8
S Nach scrollen verschwindet das zuvor im JPanel gezeichnete AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
E Button verschwindet nachdem ein Rechteck gezeichnet wurde AWT, Swing, JavaFX & SWT 5
BreakdownBob Swing JLabel verschwindet hinter Image AWT, Swing, JavaFX & SWT 2
it_is_all JPanel verschwindet nach Button-Klick AWT, Swing, JavaFX & SWT 2
E Swing Text verschwindet AWT, Swing, JavaFX & SWT 1
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
javampir Java FX Text verschwindet nicht AWT, Swing, JavaFX & SWT 9
A Swing Koordinatensystem wird gezeichnet verschwindet aber und die Einteilungen bleiben nicht bestehen AWT, Swing, JavaFX & SWT 5
R TriangleMesh verschwindet teilweise beim resizen des Frames, sowie beim rotieren? AWT, Swing, JavaFX & SWT 1
T AWT JTextfield verschwindet AWT, Swing, JavaFX & SWT 10
S LayoutManager TextField verschwindet / wird klein AWT, Swing, JavaFX & SWT 4
D Swing JOptionPane verschwindet beim 2. Aufruf einfach so?? AWT, Swing, JavaFX & SWT 2
J JPanel verschwindet... AWT, Swing, JavaFX & SWT 8
L Border verschwindet durch Graphics.drawImage() AWT, Swing, JavaFX & SWT 4
frankred Swing JMenu verschwindet nicht beim klicken ausserhalb des JMenu! AWT, Swing, JavaFX & SWT 4
P Swing Jtable mit Delete Button (Button verschwindet nicht bei Delete)) AWT, Swing, JavaFX & SWT 5
G Menü verschwindet durch .setText() AWT, Swing, JavaFX & SWT 4
J JTextArea verschwindet bei resize vom JFrame AWT, Swing, JavaFX & SWT 2
N JMenuBar verschwindet nicht nach ComponentEvent AWT, Swing, JavaFX & SWT 6
K 2D-Grafik Linie verschwindet beim Zeichnen AWT, Swing, JavaFX & SWT 10
S JCheckBoxMenuItem - Haekchen verschwindet bei Icon AWT, Swing, JavaFX & SWT 3
S Beim Painten auf JPanel verschwindet das Bild :( AWT, Swing, JavaFX & SWT 10
Iron Monkey SwingWorker verschwindet nicht AWT, Swing, JavaFX & SWT 10
R JTable Headerbeschriftung verschwindet AWT, Swing, JavaFX & SWT 3
Dit_ Zeilenmarkierung verschwindet nach repaint() AWT, Swing, JavaFX & SWT 12
R Panel verschwindet AWT, Swing, JavaFX & SWT 2
P JTextArea text verschwindet bei mausklick AWT, Swing, JavaFX & SWT 5
R Bei JDialog verschwindet der Inhalt aus übergeordneten Frame AWT, Swing, JavaFX & SWT 2
X Durch DrawLine verschwindet das Fenster und die Objekte AWT, Swing, JavaFX & SWT 13
N WindowsLookAndFeel>JFrame/JDialogTitelleiste verschwindet AWT, Swing, JavaFX & SWT 4
A gezeichnete Linie verschwindet, wenn ich JMenuBar öffne AWT, Swing, JavaFX & SWT 2
C Menue verschwindet hinter AWT-List Box.wie beheben? AWT, Swing, JavaFX & SWT 3
M JMenu verschwindet unter ScrollPane AWT, Swing, JavaFX & SWT 3
G wie verschwindet Konsole? AWT, Swing, JavaFX & SWT 3
V JDialog "verschwindet" beim umschalten in der Task AWT, Swing, JavaFX & SWT 9
R JFrame verschwindet sofort hiner dem Hauptframe AWT, Swing, JavaFX & SWT 9
M Menüleiste verschwindet AWT, Swing, JavaFX & SWT 6
H Hintergrundbild im Panel verschwindet sofort AWT, Swing, JavaFX & SWT 6
I Swing: Menü verschwindet beim Einfügen eines Bildes AWT, Swing, JavaFX & SWT 15
D DropDownSelection Box verschwindet hinter JTextArea AWT, Swing, JavaFX & SWT 2
Z bei kleinen Buttons verschwindet Schrift, obwohl Platz wäre AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben