Java Swing ImageIcon auf Buttongröße skalieren?

2 Antworten

In der Image-Klasse gibt es die Methode getScaledInstance, mit der du das Bild skalieren kannst.

Image scaledImage = yourIcon.getImage().getScaledInstance(button.getWidth(), button.getHeight(), Image.SCALE_SMOOTH);

Um wieder ein ImageIcon zu erhalten, kannst du ein neues ImageIcon-Objekt anlegen und dessen Konstruktor das Image-Objekt überreichen.

yourIcon = new ImageIcon(scaledImage);

Bryan23456789 
Beitragsersteller
 03.06.2022, 10:42

das ergibt aber ziemlich viel code wenn ich das mit 12 Bildern machen muss :(

regex9  03.06.2022, 12:34
@Bryan23456789

Eine Codezeile je Bild (also 12 Zeilen) ist eine ziemlich kurze Lösung. Ich verstehe da deine Erwartungshaltung nicht. Zumal dir doch Methoden / Arrays + Schleifen bekannt sein sollten, mit denen man sich wiederholenden Code erheblich kürzen kann. 🤨

regex9  03.06.2022, 12:36
@Bryan23456789

Der Code funktioniert definitiv. Die Frage ist eher, was du daraus machst. Das du bspw. das Bildverhältnis weiter beachten solltest, ist hoffentlich klar.

Ich hab mal das, was ich dir dazu am Montag geschickt hab, in unser GitHub Repo eingebaut. Funktioniert, wie gedacht.


regex9  02.06.2022, 12:19

Deine Antwort ist für Außenstehende leider nicht nachvollziehbar.

daCypher  02.06.2022, 14:19
@regex9

Stimmt, für die anderen Leser hier ist es nicht hilfreich.

Meine Änderung ist im Prinzip aber genau das, was du geschrieben hast.