我正在使用swing制作java桌面应用程序。我想把png设置为jbutton。但我无法设置透明图像。我想像设置背景null一样在android中这样做,所以可以设置透明图像。
答案 0 :(得分:8)
试试这个:
button.setOpaque(false);
button.setContentAreaFilled(false);
button.setBorderPainted(false);
答案 1 :(得分:3)
尝试button.setIcon(new ImageIcon(ImageIO.read(new File("path/to/image.png"))))
答案 2 :(得分:2)
ImageIcon cup = new ImageIcon(“images / cup.png”); JButton button2 =新的JButton(杯子);
这对你有帮助。有关更多信息,请单击此链接
答案 3 :(得分:1)
要使用透明PNG创建JButton
,请使用:
JButton jButton1 = new JButton(new ImageIcon(ImageIO.read(new File("yourImage.png")
要使用缩放透明PNG创建JButton
,我使用:
ImageIcon image = new ImageIcon("yourImage.png")
JButton jButton1 = new JButton(new ImageIcon(getScaledImage(icon.getImage(), 32, 32)));
/**
* Resizes an image using a Graphics2D object backed by a BufferedImage.
* @param srcImg - source image to scale
* @param w - desired width
* @param h - desired height
* @return - the new resized image
*/
private Image getScaledImage(Image srcImg, int w, int h){
BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TRANSLUCENT);
Graphics2D g2 = resizedImg.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(srcImg, 0, 0, w, h, null);
g2.dispose();
return resizedImg;
}
然后,如果您不想使用可见的边框:
jButton1.setOpaque(false);
jButton1.setBorderPainted(false);
jButton1.setContentAreaFilled(false);