Java JPanel删除颜色渐变
我有以下问题: 我有自己的JPanel实例来创建ImageButton。 当我设置背景时,它会自动添加颜色渐变,这会导致透明图像的背景与我的JFrame的颜色不匹配 如何删除此渐变Java JPanel删除颜色渐变,java,swing,jpanel,Java,Swing,Jpanel,我有以下问题: 我有自己的JPanel实例来创建ImageButton。 当我设置背景时,它会自动添加颜色渐变,这会导致透明图像的背景与我的JFrame的颜色不匹配 如何删除此渐变 public ImageButton(Runnable exec, boolean on) { super(); setBackground(new Color(238,238,238)); setVisible(false); switched_on
public ImageButton(Runnable exec, boolean on) {
super();
setBackground(new Color(238,238,238));
setVisible(false);
switched_on = on;
setSize(new Dimension(64, 64));
setPreferredSize(new Dimension(64, 64));
if(on) {
img = ImageButton.on;
}else{
img = ImageButton.off;
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img, 0, 0, null);
}
截图:ImageButton
另一个屏幕截图,您可以更好地看到渐变
当我设置背景时,它会自动添加颜色渐变,这会导致透明图像的背景与我的JFrame的颜色不匹配
使面板透明:
setOpaque( false );
现在,图像和面板都将是透明的,因此背景颜色将是ImagePanel的父组件的背景
尽管更简单的方法是只使用JLabel
。默认情况下,JLabel
是透明的。然后您可以使用setIcon(…)
方法更改图像。因此,不需要定制绘画或定制组件
当我设置背景时,它会自动添加颜色渐变,这会导致透明图像的背景与我的JFrame的颜色不匹配
使面板透明:
setOpaque( false );
现在,图像和面板都将是透明的,因此背景颜色将是ImagePanel的父组件的背景
尽管更简单的方法是只使用
JLabel
。默认情况下,JLabel
是透明的。然后您可以使用setIcon(…)
方法更改图像。因此,不需要定制绘画或定制组件。我终于找到了问题所在。我试图在我的源代码中找到这个错误,但是图像本身在左上角有一个白色背景。我终于找到了问题。我试图在我的源代码中找到这个错误,但是图像本身在左上角有一个白色背景。1)为了更快地获得更好的帮助,请发布一个或。2) 例如,获取图像的一种方法是热链接到中看到的图像。3) g.drawImage(img,0,0,null)
应该是g.drawImage(img,0,0,this)代码>1)要更快获得更好的帮助,请发布或。2) 例如,获取图像的一种方法是热链接到中看到的图像。3) g.drawImage(img,0,0,null)
应该是g.drawImage(img,0,0,this)代码>