Hi!
Ich bin in Java noch ein ziemlicher Anfänger (beherrsche aber Delphi recht gut).
Ich möchte nun eine Grafik aus einer Datei laden (JPEG- Image) und auf der Oberfläche darstellen.
Das habe ich bisher so gelöst:
Ein JLabel auf die Oberfläche und dann mit
(evtl. sind jetzt kleine Fehler drinnen, habs aus dem Kopf hier aufgeschrieben, ohne es zu testen. Das Prinzip hat aber schon funktioniert)
Jetzt ist es aber so, dass ich die Größe der Bilder beschränken will, damit es nicht mein ganzes Layout zerhaut, wenn das Bild zu groß ist.
Bei der Klasse Icon habe ich bisher vergeblich nach einer Funktion zum Verändern der Größe (Skalierung!) gesucht. Fündig bin ich bei der Klasse Image geworden. Aber wie kann ich jetzt eine Instanz von Image in eine Instanz von Icon übertragen?
mein bisheriger (gekürzter) Code sieht folgendermaßen aus. Beim ausführen zeigt er jedoch kein Bild an.
Gruß
alias5000
Ich bin in Java noch ein ziemlicher Anfänger (beherrsche aber Delphi recht gut).
Ich möchte nun eine Grafik aus einer Datei laden (JPEG- Image) und auf der Oberfläche darstellen.
Das habe ich bisher so gelöst:
Ein JLabel auf die Oberfläche und dann mit
Code:
File datei = new File(/*Dateipfad*/);
Icon Bild = ImageIcon(datei.toString());
Bildlabel.setIcon(Bild);
Jetzt ist es aber so, dass ich die Größe der Bilder beschränken will, damit es nicht mein ganzes Layout zerhaut, wenn das Bild zu groß ist.
Bei der Klasse Icon habe ich bisher vergeblich nach einer Funktion zum Verändern der Größe (Skalierung!) gesucht. Fündig bin ich bei der Klasse Image geworden. Aber wie kann ich jetzt eine Instanz von Image in eine Instanz von Icon übertragen?
mein bisheriger (gekürzter) Code sieht folgendermaßen aus. Beim ausführen zeigt er jedoch kein Bild an.
Code:
Image image1 = Toolkit.getDefaultToolkit().getImage(pData[5]);
int Width = image1.getWidth(null);
int Height = image1.getHeight(null);
//hier wird Height und Width ggf. angepasst, falls das Bild zu groß ist.
Image image2 = image1.getScaledInstance(Width, Height, image1.SCALE_SMOOTH);
Icon Bild = new ImageIcon(image2.toString);
BildLabel.setIcon(Bild);
Gruß
alias5000