ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
1452
1452
EMPFEHLEN
-
Moin,
ich bin der Meinung, ich hätte etwas gelesen, das ich ein ImageIcon manuell neuladen muss, dammit etwaige Änderungen angezeigt werden. Ich kann diese Stelle nirgents mehr finden :/
Kann mir einer einen Hinweis geben?
-
Also das wäre mir neu, ein repaint sollte hier genügen..
mfg elmato
-
Das hilft iregntwie nicht. Ich habe erstelle jetzt jedesmal ein Vorschaubild mit einem eigenen Dateiname und lösche das Alte... jetzt zeigt ers richtig an.
-
Klingt sehr umständlich und Rechenintensiv, was versuchst du den zu machen bzw. was veränderst du den an dem Bild?
-
Es wird für jedes Bild, das ich hochlade, ein Vorschaubild erstellt was z.B. thumb.jpg heißen soll. Das Bild liegt in dem Temporären Verzeichniss des Benutzers. Von da wird dann das Icon erstellt. Wenn ich das Bild nur überschreibe und ein neues Icon erstelle, bleibt das alte Bild sozuisagen erhalten. ich schätzte, das er das dann aus dem Cache rausnimmt.
-
Kann keiner helfen? Für einen Hinweis wäre ich auch sehr dankbar.
-
Hallo,
Für das "ImageIcon neuladen" braucht man lediglich das Bild neu einzulesen (getImage()) und neuzuzeichen (repaint()).
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
import java.awt.BorderLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class IconRefreshExample extends JFrame implements ActionListener { private Toolkit tk = Toolkit.getDefaultToolkit(); private JLabel l = new JLabel(new ImageIcon("b1.jpg")); private JButton b = new JButton("Refresh"); public IconRefreshExample() { super("Example"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setAlwaysOnTop(true); this.setLocationByPlatform(true); this.add(l, BorderLayout.CENTER); this.add(b, BorderLayout.SOUTH); b.addActionListener(this); this.pack(); this.setVisible(true); } public static void main(String[] args) { new IconRefreshExample(); } public void actionPerformed(ActionEvent e) { ((ImageIcon) l.getIcon()).getImage().flush(); ((ImageIcon) l.getIcon()).setImage(tk.getImage("b1.jpg")); l.repaint(); } }
Vg ErdalGeändert von flashray (20.05.06 um 17:07 Uhr)
-
Danke für deine Antwort Erdal!
Leider ist es nicht das was ich suche. Denn wenn ich das Bild verändere bzw. überschreibe, zeigt mir dein Programm immer noch das alte Bild an.
-
Hallo y0g1,
hab dem obigen Code noch eine Zeile (flush()) hinzugefügt. Jetzt klappt es!
Vg Erdal
-
SUPER! Danke vielmals!

Gruss
David
Ähnliche Themen
-
ImageIcon
Von primo11 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 19.12.07, 13:06 -
ImageIcon ersetzten
Von Don Ecker im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 14.09.07, 22:56 -
ImageIcon
Von tha_specializt im Forum JavaAntworten: 2Letzter Beitrag: 18.08.07, 19:47 -
ImageIcon fehler ?
Von knopper im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 28.02.05, 16:36 -
ImageIcon finden
Von yidaki im Forum JavaAntworten: 1Letzter Beitrag: 10.11.04, 16:16





Zitieren
Login





