Wie skaliere ich das Hintergrundbild eines Buttons in java?
Hallo!
Ich habe einen Button in Java mit einem Hintergrundbild:
JButton ibutton = new JButton(new ImageIcon("PFAD ZU BILD"));
ibutton.setPreferredSize(new Dimension(250, 250));
Der Button hat bereits die von mir gewünschte Größe, das Bild jedoch behält seine Originalgröße. Da der Button kleiner als das Bild ist werden die Ränder des Bildes abgeschnitten. Wie kann ich das ändern?
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Technik, programmieren
In der Image-Klasse gibt es die Methode getScaledInstance, mit der du das Bild skalieren kannst. Das sollte natürlich erst nach Setzen der bevorzugten Buttongröße durchgeführt werden.
Image scaledImage = yourIcon.getImage().getScaledInstance(yourButton.getWidth(), yourButton.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);
Dieses Icon setzt du anschließend für deinen Button (via setIcon).
Image img = new ImageIcon("PFAD ZU BILD").getImage();
Image scaledImg = img.getScaledInstance(250, 250, Image.SCALE_SMOOTH);
JButton ibutton = new JButton(new ImageIcon(scaledImg));