Java Bild mit JLabel passend einfügen?
Hallo erstmal, ich bin gerade dabei ein Programm zu erstellen, das einige Bilder brauch, doch das Problem ist, dass das Bild zu groß ist...
Hier wäre ein Beispiel dafür, wie ich das Bild eingefügt hatte:
static ImageIcon test= new ImageIcon("test.png");
public JLabel test = new JLabel(" ",test,JLabel.CENTER);
test.setBounds(600,150,200,400);
backgroundStart.add(test);
jedoch wenn ich es am Ende auch auf den frame geaddet habe und das Bild anschauen will, ist nur ein Eck des Gesamtbildes abgebildet, dennoch kann ich nicht die Bounds größer machen, da es sonst für den Rest im Weg wäre.
Deshalb die Frage, ob man das Bild wirklich durch Programme wie Paint auf die Pixel anpassen muss, oder ob man es im Java Programm Code auch kleiner machen kann, ohne dass es wie Pixelbrei am Ende aussieht xD.
MfG Hi156
1 Antwort
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
1) Vergiss die setBounds-Methdode. Verwende Layout Manager. Größenangaben kannst du mit setPreferredSize vorgeben.
2) Das Bild kannst du entsprechend der Labelgröße skalieren. Voraussetzung ist natürlich, dass das Label das gleiche Größenverhältnis wie das Originalbild hat, andernfalls verzerrst du es.
var image = new ImageIcon(new ImageIcon("test.png").getImage().getScaledInstance(yourLabel.getWidth(), yourLabel.getHeight(), Image.SCALE_SMOOTH));
yourLabel.setIcon(image);
Lies dazu auch hier.