JButton

Hi Leute,

ich habe ein paar *.gif Bildchen erstellt die ich nun auf die JButton bekommen würde.
So weit so gut, nur leider füllen die nicht die gesamte Fläche des Button aus, sondern werden abgeschnitten und dann ist da noch n Rand drumherum.

Okay, ich habe mir dann überlegt das ich ja auch einfach JLabel nehmen könnte aber wollte vorher einfach mal nachfragen ob es da auch eine einfachere Lösung (mit JButton) gibt.

mfg Michael

Hallo Michael,

einige Swing Komponenten schneiden Bilder zurecht, um sie anzuzeigen. Vermutlich macht das auch der JButton so.
Eigentlich nimmt man den JLabel, wie du ja selbst schon bemerkt hast. Der behält die Originalgröße des Bildes bei. Bei großen Bildern kann das zu Problemen bei der Anzeige führen. Dann kann man den JLabel in eine JScrollPane stecken. Dann hat das Bild eine Scrollleiste.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Peter,

habe das so eben mal versucht mit JLabel, allerdings will er mir dann garkeine Bildchen mehr anzeigen.
Kann es vielleicht daran liegen das es sich dabei um „Image“ handelt und nicht um „ImageIcon“? Habe in Java ist auch eine Insel zumindest nichts direkt passendes zu dem Problem gefunden, außer Konstruktoren von JLabel die ein ImageIcon annehmen.
Allerdings will ich ja net son kleines Icon darstellen sondern einen „Button“ mit Bild dadurch simulieren.

mfg Michael

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Michael,

ImageIcon kann beliebig groß werden.

Image image = Toolkit.getDefaultToolkit().createImage(bildPfad);
image = image.getScaledInstance(200, -1, Image.SCALE\_FAST);
imageIconBild = new ImageIcon(image);
labelBild = new JLabel(imageIconBild);

Das Skalieren kann man sich auch sparen.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Michael,

ImageIcon kann beliebig groß werden.

Image image =
Toolkit.getDefaultToolkit().createImage(bildPfad);
image = image.getScaledInstance(200, -1, Image.SCALE_FAST);
imageIconBild = new ImageIcon(image);
labelBild = new JLabel(imageIconBild);

Das Skalieren kann man sich auch sparen.
Hi,

warum nicht

ImageIcon icon = new ImageIcon("file.jpg");
JLable imgLabel = JLabel(icon);

oder

JLable imgLabel = JLabel(new ImageIcon("file.jpg"));


wenn du es noch skalieren willst:

icon.setImage(icon.getImage().getScaledInstance(200, -1, Image.SCALE\_FAST))

Gruß Bonkers