2016-06-02 10 views
0

I unterSmaller auf die Bildgröße in JPanel

enter image description here

jedoch eine GUI als Bild zu erstellen versuchen, wenn ich meine Datei ausführen, die Größe des Bildes bleibt immer noch die ursprüngliche Größe

enter image description here

Wie kann ich die Größe des Bildes reduzieren, so dass ich Text neben hinzufügen kann?

public class HomePage extends JFrame { 
    public static void main(String[] args) throws IOException { 
    new HomePage(); 
    } 

    public HomePage() throws IOException { 
    this.setTitle("Picture Application"); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    getContentPane().setBackground(Color.yellow); 
    BufferedImage myPicture = ImageIO.read(new File("C:\\Users\\seng\\Desktop\\logo.png")); 
    myPicture.getScaledInstance(10,30,Image.SCALE_SMOOTH); 
    JLabel picLabel = new JLabel(new ImageIcon(myPicture)); 
    add(picLabel); 
    this.pack(); 
    this.setVisible(true); 
    } 
} 
+0

Von dem, was ich sagen kann, das ist die Antwort, die Sie suchen: http://stackoverflow.com/questions/16343098/resize-a-picture-to -fit-a-jlabel – sahilkmr78

Antwort

2
myPicture.getScaledInstance(10,30,Image.SCALE_SMOOTH); 

Die obige Anweisung gibt einen neuen BufferedImage, die Sie nie verweisen. sein

sollte der Code:

//myPicture.getScaledInstance(10,30,Image.SCALE_SMOOTH);  
Image scaled = myPicture.getScaledInstance(10,30,Image.SCALE_SMOOTH); 
JLabel picLabel = new JLabel(new ImageIcon(scaled)); 
+0

'kann nicht von Image zu BufferedImage konvertieren ' –

+1

@Seng, Ok, ich hatte einen Tippfehler. Jeder Code, den wir hier veröffentlichen, wird nicht getestet. Haben Sie das grundlegende Konzept nicht verstanden, dass Sie das skalierte Bild einer Variablen zuweisen müssen, um es zu verwenden? Ändern Sie einfach die Anweisung, um eine Image-Variable zu verwenden. Nehmen Sie sich die Zeit, die API zu lesen, wenn Sie einen Vorschlag im Forum erhalten. – camickr