JAVA: Bild aktualisiert sich nicht

  • #1
M

Michael_B

Bekanntes Mitglied
Themenersteller
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
Einen wunderschönen guten Morgen... Selamat pagi ^^

ich schreib grad eine Applikation, die mir gewisse Ergebnisse visualisiert. Es wird hier aber keine Anornung von Komponenten erzeugt, sondern ein BufferedImage. Dieses BufferedImage wird auf einem JLabel (fand ich am einfachsten, da hier das Image gleich per ImageIcon auf das Label gepackt werden kann) angezeigt. Dieses JLabel kommt - verpackt in einem JPanel und dieses wiederum in einem JScrollPane - in den JFrame rein (BorderLayout.CENTER). Außerdem hat der JFrame bei BorderLayout.EAST ein JPanel, in dem verschiedene Komponenten vorhanden sind, mit denen man bestimmte Einstellungen für das angezeigte Bild machen kann. Z. B. einige JCheckBox'en zum aktivieren/deaktivieren bestimmter Elemente in dem Bild oder andere Komponenten zum variieren der Größe der Elemente.

Code:
JFrame
    JScrollPane (bei BorderLayout.CENTER)
       JPanel
           JLabel (BufferedImage wird per ImageIcon dargestellt)
    JPanel (bei BorderLayout.EAST)
       verschiedene Komponenten (nicht relevant)

Das Ändern der Größe der Elemente hatte ich zuerst implementiert. Anfangs wollte sich das Bild nicht aktualisieren - es hat sich nur aktualisiert, wenn man z. B. durch Ändern der Größe des Frames quasi ein Neu-Zeichnen des Frames und aller seiner Komponenten ausgelöst hat. Dieses Problem habe ich beheben können: lt. einem Beitrag im java Forum von Sun, den ich zufällig gefunden hatte, muss man hier dem JPanel, welches das JLabel aufnimmt, sowohl per setSize als auch per setPreferredSize seine neue Größe angeben. Dann wird das Bild (mit der anderen Größe) aktualisiert.
Nun zu meinem Folgeproblem: Ich habe in dem Einstellungen-Panel ein JTextField, mit dem man z. b. die Überschrift des Bildes ändern kann. Es wird hierbei also eine Änderung am BufferedImage vorgenommen, die NICHT zu einer Veränderung in der Größe des BufferedImage führt. Daher stehe ich nun wieder vor dem Problem, dass sich das Bild nicht aktualisiert (wenn man die Größe betreffende Einstellungen nicht ändert). Offenbar zieht setSize und setPreferredSize hier nicht, wenn sich die Größe net tatsächlich geändert hat...

Hat hier jemand einen Rat für mich? Ich habs auch schon mit repaint() validate() revalidate() versucht. Aber irgendwie wollte das auch nicht funktionieren. Vll. bin ich ja auch zu plöd dafür ^^

Thx in advance
M.
 
  • #2
Okay...

nachdem ich den Thread erstell hatte, musste ich natürlich gleich auch selbst die Lösung finden... Offenbar hatte ich auf allen möglichen komponenten ein repaint() versucht, aber eben nicht auf dem Label auf dem das Bild dargestellt wird. Jetzt funktioniert es jedenfalls...

Vorführeffekt halt :)
M.
 
Thema:

JAVA: Bild aktualisiert sich nicht

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.959
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben