Java Swing ImageIcon auf Buttongröße skalieren?
Hallo liebe Mitmenschen.
Vielleicht kennt sich hier jemand mit Java Swing aus. Jedenfalls würde ich gern die ImageIcons die ich habe, dynamisch an meine Knopfgröße anpassen, die ich habe. Also neu skalieren. Nur habe ich leider keine Idee, wie man das machen kann.
Ich würde mich sehr freuen, wenn mir da Hilfe gegeben wird.
Vielen Dank.
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);
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. 🤨
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.
das ergibt aber ziemlich viel code wenn ich das mit 12 Bildern machen muss :(