如何使通过jxImageview显示的图像的透明背景颜色

时间:2012-01-14 13:51:10

标签: java swing swingx

我制作了一个JxImageView对象并为其设置了一个图像,现在我的背景为白色,而不是原始图像。我只是想从视口中删除白色。

3 个答案:

答案 0 :(得分:4)

我不知道JxImageView,但我看不出它如何改变图像的背景颜色,因为图像没有任何背景颜色。它可能只是意味着图像的某些部分是透明的,并且您看到的白色是显示图像的组件的背景颜色:JxImageView。您应该只是将JxImageView的背景颜色更改为适合您的颜色。

JxImageView本身也可以是透明的,在这种情况下你会看到它的父组件的背景。

尝试在图像编辑器中加载图像以确认图像是透明的。

答案 1 :(得分:4)

阅读docs后,我总结(如果我错了,请纠正我)你无法改变白色背景

在JxImageView的构造函数中,您会看到:

/** Creates a new instance of JXImageView */
public JXImageView() {
      checkerPaint = ColorUtil.getCheckerPaint(Color.white,
      new Color(250, 250, 250), 50);
      setEditable(true);
}

并且无法访问checkerPaint

答案 2 :(得分:3)

JXImageView bug修复了当前快照(顺便说一下,在SwingX 1.6.3之后,以防你错过了release announcement :)要替换默认的方格背景,只需设置一个自定义背景画家:

JXImageView ipa = new JXImageView();
ipa.setBackgroundPainter(new MattePainter(Color.RED));