2016-04-30 81 views
0

你好我如何適應一個ImageIcon的大小JButton?我想通過簡單地增加一個小方法,你的項目給ImageIcon的大小調整到Button適合JButton ImageIcon的大小

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

如果要將圖像圖標大小調整爲700px,請調整大小700px搜索有關如何調整大小圖像 – Blip

+0

您可能還想看看[this](http://stackoverflow.com/questions/11959758/java-maintaining -aspect-ratio-of-jpanel-background-image/11959928#11959928)和[this](http://stackoverflow.com/questions/14115950/quality-of-image-after-resize-very-low-java/ 14116752#14116752) – MadProgrammer

回答

1

你能做到這樣的尺寸:

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); 
} 

現在,使用此

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); 

如果你只是想將圖像和無邊框只設置偏移變量爲0或完全得到消除偏移變量的:方法在你的示例代碼。

+0

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