repaint() ruft paint() nicht auf

Status
Nicht offen für weitere Antworten.

Kin

Mitglied
Hallo,
habe folgendes problem:
Ich erstelle in einem JFrame-Objekt ein weiteres JFrame-Objekt einer anderen Klasse. Dieses neu erstellte Objekt hat eine loop()-unktion, in der alle x millisekunden die repaint()-methode aufgerufen wir. Das Problem: der aufruf von repaint() bewirkt nicht den aufruf von paint().
Wenn Ich das besagte Objekt nicht aus einem JFrame heraus erstelle sondern einfach zu Testzwecken in der main(), dann funktioniert es und repaint() ruft wie gewünscht paint() auf. Weiss jemand, woran das liegen könnte? Auf Wunsch kann ich auch etwas Code posten, dass Problem ist nur, ich weiss nicht was vom code ich posten soll. mir ist vollkommen unklar wo der Fehler liegt.

MfG
 

hdi

Top Contributor
Ich hab auch grad bisschen rumgespielt.
Es scheint, als würde das Frame, indem ein neues Frame erstellt wird, dieses
irgendwo "einsaugen" wenn es ums painten geht.

So führt scheinbar ein repaint() des im Frame erstellten Frames ein paint()
des Haupt-Frames aus.. D.h. quasi: Die paint() Methode des im Frame
erstellten Frames delegiert an die paint() Methode des Haupt-Frames, indem
das Frame erstellt wurde :bahnhof:

So kommt es mir jetzt zumindest nach ein wenig Testen vor.
Warum das so ist -> keine Ahnung! Das ist Profi-Stoff hier, Wildcard o.ä. werden
dazu bestimmt was logisches sagen können...
Selbst wenn es nur ist: "Man erstellt keine Frames in Frames" ;)
 

Kin

Mitglied
Dachte schon meine Frage ist wieder verdammt dämlich. ;) glück gehabt :D
Ja habe auch schon daran gedacht, dass es nicht sinnvoll ist aus einem frame ein anderes frame zu erstellen, kam mir beim programmieren aber arg objekt-orientiert vor :D keine ahnung
 
G

Gast2

Gast
warum erstellst du 2 frames???und nicht ein Dilalog oder Window?
 

hdi

Top Contributor
Man braucht nie 2 Frames. Was willst du denn konkret haben?
Ein Frame ist ein Fenster, dass einen Eintrag in der Taskleiste hat.
Das heisst nicht, dass Frame die einzige Klasse ist, die ein Fenster darstellt.
 

Kin

Mitglied
Ok. Mal abgesehn davon, dass das die Frage ja nun auch nicht beantwortet: hier meine Absicht:
Es soll ein Fenster erscheinen, in welchem man einen Pfad zu einer Bild-Datei angeben kann. Ein Klick auf den entsprechenden Button sorgt dann dafür, dass ein neues Fenster aufgeht, in welchem das Bild dann dargestellt und verändert werden kann.
 

hdi

Top Contributor
Ok, sowas wird eig. in derartigen Anwendungen über Tabs geregelt.
D.h. wenn du ein Bild öffnest erscheit im Fenster oben ein Tab, klickste da drauf
bekommst du das Bild zu sehen und ne Werkzeugleiste um es zu bearbeiten, oder sonst was.

Öffnest du ein neues (zB über ein Menü ganz oben), öffnest sich ein neues Tab nebem
dem alten. So, wie man es bei Browsern auch kennt.

Es gibt solche Dinger auch schon vorgefertigt, ich glaube die Klasse heisst JTabbedPane
oder sowas, und dort kannste eben JPanels adden.

Damit wirst du keine Probleme haben und hast immer nur ein JFrame.
Für den Code bedeutet das kaum einen Unterschied, ob du nun ein JFrame erstellst
oder ein JPanel.

Schau dir die Klasse mal in der API an
 

Kin

Mitglied
Danke für den Tip. Eventl. versuche ich das mal, obwohl das natürlich die Anwendung vom Aussehen her etwas verändert. aber das ist erstmal egal. Trotzdem würde mich das mit dem repaint()-Aufruf noch interessieren. Also wenn jemand was weiss, bitte sagen!
 
G

Gast2

Gast
Mach ein komplierbares Beispiel wo das Verhalten sichtbar ist...
Und du könntest dein Frame immer nich durch ein JDialog ersetzen, versteh das Problem dabei nicht...
 

hdi

Top Contributor
So, ich glaub ich weiss wo es hackt:
Ein Frame muss auf setVisible(true) geschaltet sein, damit es sich repainted.
Ich hab's grad getestet: 4 Frames, alle auf eine andere Weise erstellt, z.T.
statisch, z.T. nicht, z.T. von innen erstellt, z.T. von aussen....
Alles total egal.

Wenn ein Frame sichtbar ist, wird es repainted, wenn nicht, dann nicht.
(Was ja auch Sinn macht)

@Thread-Ersteller: Kann es sein, dass das dein Problem ist?
 

Kin

Mitglied
Die Frames sind alle Visible. er zeigt das Fenster ja auch an, nur ruft er dann nicht die paint-methode mittels repaint() auf.
BTW: JDialog statt JFrame ändert nichts
 

Ebenius

Top Contributor
Mach ein komplierbares Beispiel wo das Verhalten sichtbar ist...
Und du könntest dein Frame immer nich durch ein JDialog ersetzen, versteh das Problem dabei nicht...
Ein Dialog wäre bei der Beschreibung eigentlich ungeeignet. Man verwendet einen (J)Dialog, wenn der Benutzer sich etwas ansehen will, dann ggf. ein paar Aktionen ausführt, und danach den (J)Dialog wieder schließen will. Zum Beispiel bei Einstellungen, About Panel, Login Dialog, etc. Hier handelt es sich eher um eine SDI-Anwendung und diese hat nunmal pro Dokument ein Fenster inkl. Eintrag in der Taskleiste und so weiter. Genauso wie wenn man in Word ein weiteres Dokument aufmacht.

Das ganze durch ein JTabbedPane zu ersetzen kann sinnvoll sein, kann aber auch stören; je nachdem, wie mit dem Programm gearbeitet werden soll.

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Swing repaint() ruft paintComponent(g1d) nicht auf AWT, Swing, JavaFX & SWT 12
N Observer: update ruft nicht repaint auf AWT, Swing, JavaFX & SWT 0
D Repaint Funktioniert nicht AWT, Swing, JavaFX & SWT 2
D JUNG Repaint function does not work AWT, Swing, JavaFX & SWT 2
E repaint Probleme AWT, Swing, JavaFX & SWT 13
G listener repaint() - verschiedene Darstellung AWT, Swing, JavaFX & SWT 24
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
J actionperformed wird nicht aufgerufen/ repaint() AWT, Swing, JavaFX & SWT 6
G Repaint wird nicht durchgeführt AWT, Swing, JavaFX & SWT 8
I Swing Verhindern, dass repaint() kaskadiert AWT, Swing, JavaFX & SWT 6
ms_cikar Update swingUtilities Repaint in der Schleife AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
N Swing JButtons werden nach repaint() doppelt dargestellt AWT, Swing, JavaFX & SWT 12
K Methode repaint() AWT, Swing, JavaFX & SWT 1
B Swing Wann brauche ich repaint() ? AWT, Swing, JavaFX & SWT 1
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
A repaint(); AWT, Swing, JavaFX & SWT 9
J Swing ungewünschter Nebeneffekt bei der repaint() Methode AWT, Swing, JavaFX & SWT 3
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
S 2D-Grafik repaint()-Aufruf. Und nichts geschieht. AWT, Swing, JavaFX & SWT 5
Joew0815 JDialog repaint() funktioniert nicht wie gewünscht. AWT, Swing, JavaFX & SWT 2
P JPanel und Repaint AWT, Swing, JavaFX & SWT 5
J JavaFX Automatisches Neuzeichnen ("Repaint") abstellen. AWT, Swing, JavaFX & SWT 10
F JTable Repaint Issue AWT, Swing, JavaFX & SWT 1
C Repaint() funktioniert nicht in TabbedPanel AWT, Swing, JavaFX & SWT 5
S JList repaint AWT, Swing, JavaFX & SWT 1
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
M Repaint mittels Button richtig aufrufen klappt nicht AWT, Swing, JavaFX & SWT 1
B Repaint auf JFrame, JLabel und ImageIcon AWT, Swing, JavaFX & SWT 4
K 2D-Grafik Paint - Wie binde ich repaint ein? AWT, Swing, JavaFX & SWT 8
D repaint() klappt anders als vorgestellt AWT, Swing, JavaFX & SWT 15
R Repaint() in Schleifen, Threads AWT, Swing, JavaFX & SWT 13
B Swing Repaint Problem - mal wieder AWT, Swing, JavaFX & SWT 5
P 2D-Grafik Gezielter Repaint einzelner Frames in Java-Game AWT, Swing, JavaFX & SWT 6
javampir Bei repaint nix los AWT, Swing, JavaFX & SWT 2
B Swing repaint() AWT, Swing, JavaFX & SWT 3
Ernesto95 AnimationLoop - Problem bei Aufruf von repaint AWT, Swing, JavaFX & SWT 6
P 2D-Grafik repaint(); steigender RAM Verbauch AWT, Swing, JavaFX & SWT 6
Y KeyListener, GUI Thread, repaint AWT, Swing, JavaFX & SWT 7
S Applet Repaint AWT, Swing, JavaFX & SWT 3
M Programm hängt sich auf nachdem repaint() benutzt wurde AWT, Swing, JavaFX & SWT 2
R Swing Grafikfehler bei repaint AWT, Swing, JavaFX & SWT 2
N repaint() blockieren AWT, Swing, JavaFX & SWT 6
K canvas zeig nach repaint nichts an AWT, Swing, JavaFX & SWT 8
M Repaint() AWT, Swing, JavaFX & SWT 14
J Swing repaint, repaint, repaint AWT, Swing, JavaFX & SWT 8
M Applet repaint() verlangsamen AWT, Swing, JavaFX & SWT 7
R paintComponent malt bei repaint() Rahmen um Panel AWT, Swing, JavaFX & SWT 7
P EDT Problem? Kein Aufruf der repaint Methode AWT, Swing, JavaFX & SWT 6
V Applet JApplet Flackern durch Repaint AWT, Swing, JavaFX & SWT 11
kodela Problem mit repaint() AWT, Swing, JavaFX & SWT 3
N Swing Funktion repaint() updated nicht AWT, Swing, JavaFX & SWT 5
F repaint reagiert nicht AWT, Swing, JavaFX & SWT 8
S AWT Probleme mit repaint() AWT, Swing, JavaFX & SWT 2
D Repaint()? Oder was??? AWT, Swing, JavaFX & SWT 5
M Eine nicht korrekte Darstellung bei repaint() warum? AWT, Swing, JavaFX & SWT 4
T 2D-Grafik Kreis "von Hand" zeichnen -> jedesmal repaint()? AWT, Swing, JavaFX & SWT 6
R validate(), repaint funktionieren nicht! AWT, Swing, JavaFX & SWT 7
B AWT Canvas überdeckt nach repaint() JComboBox-Optionen AWT, Swing, JavaFX & SWT 2
B Swing verschachteltes GUI: repaint() ändert mehr als nur gewünschte Component AWT, Swing, JavaFX & SWT 4
S validate(), invalidate(), repaint(),... Was kommt wann? AWT, Swing, JavaFX & SWT 5
M 2D-Grafik repaint() löscht altes Bild nicht AWT, Swing, JavaFX & SWT 2
J repaint() nicht richtig? AWT, Swing, JavaFX & SWT 6
R repaint erzwingen AWT, Swing, JavaFX & SWT 3
Zettelkasten repaint() von anderen Klassen aufrufen AWT, Swing, JavaFX & SWT 4
H repaint()-Problem - 50% CPU-Auslastung AWT, Swing, JavaFX & SWT 4
P repaint während Thread läuft AWT, Swing, JavaFX & SWT 9
D Repaint Frage, Design Frage AWT, Swing, JavaFX & SWT 2
N Swing MainWindow(JFrame) aktualisieren(neuzeichnen) repaint AWT, Swing, JavaFX & SWT 4
T repaint() Problem AWT, Swing, JavaFX & SWT 2
A 2D-Grafik Repaint - Alternative? AWT, Swing, JavaFX & SWT 3
C JLabel, JTextArea, JScrollPane. repaint(); ? AWT, Swing, JavaFX & SWT 6
N Swing repaint() funktioniert nicht AWT, Swing, JavaFX & SWT 5
T Swing repaint funktioniert nur manchmal? AWT, Swing, JavaFX & SWT 6
K Jpanel repaint problem (Fullscreen) AWT, Swing, JavaFX & SWT 5
V Swing Bei repaint() tut sich nichts AWT, Swing, JavaFX & SWT 7
G ColorReader, bei Fadenkreuz zeichnen mit repaint() flackern AWT, Swing, JavaFX & SWT 19
I Canvas Repaint Probleme AWT, Swing, JavaFX & SWT 2
D Swing Actionlistener verhindert repaint?! AWT, Swing, JavaFX & SWT 2
S JLabel repaint AWT, Swing, JavaFX & SWT 8
C Swing Linux mag mein Swing-repaint() nicht... AWT, Swing, JavaFX & SWT 7
J Swing paintComponent() - repaint() - BufferedImage anzeigen AWT, Swing, JavaFX & SWT 5
Luk10 repaint() auch in anderen Klassen! AWT, Swing, JavaFX & SWT 6
A repaint() zu langsam, bitte um alternativen AWT, Swing, JavaFX & SWT 5
T Überlappende Transparenz und repaint() AWT, Swing, JavaFX & SWT 10
E EINFACHE Verständnisfrage zu repaint(), paintComponent(), usw. AWT, Swing, JavaFX & SWT 16
O Girdbag Formatierung nach repaint verloren AWT, Swing, JavaFX & SWT 2
E Swing - repaint() AWT, Swing, JavaFX & SWT 6
T Image wird nicht angezeigt?! - MediaTracker/repaint AWT, Swing, JavaFX & SWT 9
E AWT Problem mit Repaint (in Loop oder Timer) AWT, Swing, JavaFX & SWT 3
O Exception bei repaint AWT, Swing, JavaFX & SWT 3
D Fragen zu Swing, paintComponent() und repaint AWT, Swing, JavaFX & SWT 6
Dit_ Zeilenmarkierung verschwindet nach repaint() AWT, Swing, JavaFX & SWT 12
A Swing Infinite repaint loop unterbrechen AWT, Swing, JavaFX & SWT 7
hdi Swing EDT macht kein repaint() AWT, Swing, JavaFX & SWT 2
F "Verrutschen" von Komponenten bei repaint() AWT, Swing, JavaFX & SWT 9
Junker Fensterinhalt vor ausführen von repaint komplett löschen. AWT, Swing, JavaFX & SWT 2
T Fenster wird trotz repaint() und revalidate() nicht sofort neu gezeichnet AWT, Swing, JavaFX & SWT 6
E Graphics2D: altes Objekt löschen, wenn repaint aufgerufen wird AWT, Swing, JavaFX & SWT 7
J Swing Verständnis-Problem repaint(int x,int y,int width,int height) AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben