2016-04-30 19 views
0

Hallo, wie kann ich die Größe eines ImageIcon zu einem JButton passen? Ich möchte die Größe des ImageIcon auf die Größe des ButtonFit Größe eines ImageIcon zu einem JButton

JFrame frame2 = new JFrame("Tauler Joc"); 
JPanel panell = new JPanel(); 
ImageIcon icon = new ImageIcon("king.jpg"); 
JButton jb= new JButton(icon); 
jb.setBounds(200,200,700,700); 
panell.add(jb); 
frame2.add(panell); 
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
+0

Wenn Sie die Größe Ihres Bildsymbols auf 700px um 700px ändern möchten, suchen Sie nach der Größe des Bilds in der Größe – Blip

+0

Sie können sich auch [this] ansehen (http://stackoverflow.com/questions/11959758/java-maintaining) -aspect-ratio-of-jpanel-background-image/11959928 # 11959928) und [dies] (http://stackoverflow.com/questions/14115950/quality-of-image-after-resize-very-low-java/ 14116752 # 14116752) – MadProgrammer

Antwort

1

Sie es, indem Sie einfach ein wenig Methode, um Ihr Projekt auf diese Weise tun können, anzupassen:

private static Icon resizeIcon(ImageIcon icon, int resizedWidth, int resizedHeight) { 
    Image img = icon.getImage(); 
    Image resizedImage = img.getScaledInstance(resizedWidth, resizedHeight, java.awt.Image.SCALE_SMOOTH); 
    return new ImageIcon(resizedImage); 
} 

Nun, dies zu verwenden, Methode in dem Beispielcode:

JFrame frame2 = new JFrame("Tauler Joc"); 
JPanel panell = new JPanel(); 
ImageIcon icon = new ImageIcon("king.jpg"); 
JButton jb= new JButton(); 
jb.setBounds(200,200,700,700); 
panell.add(jb); 

// Set image to size of JButton... 
int offset = jb.getInsets().left; 
jb.setIcon(resizeIcon(icon, jb.getWidth() - offset, jb.getHeight() - offset)); 

frame2.add(panell); 
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

Wenn Sie das Bild und keine Grenze nur den Offset-Variable auf 0 oder laden Sie sich gesetzt loswerden das Offset-Variable insgesamt nur wollen.

+0

[Die Gefahren von Image.getScaledInstance()] (https://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html) – MadProgrammer