0

我有一个主合成,里面有另一个合成,现在我想为外部合成设置背景图像,当我这样做时,内部合成显示白色背景如何摆脱那个白色背景?

public void createPartControl(Composite parent) {
    Composite outer = new Composite(parent, SWT.INHERIT_FORCE);
    outer.setBackgroundImage(new Image(null , this.getClass().getClassLoader().getResourceAsStream("background.jpg")));

    Composite inner = new Composite(outer, SWT.NONE);
    //add text, label etc to inner
}

背景已设置,但仅适用于内部复合白色背景。谢谢你的帮助。

4

2 回答 2

1

SWT.INHERIT_FORCE不应该传递给构造函数。相反,调用

outer.setBackgroundMode(SWT.INHERIT_FORCE);
于 2013-09-30T14:47:34.127 回答
0

我猜你想在你的外表上放一些Composite有背景图像的东西。

要么尝试设置inner.setBackground(null),要么手动GC在该背景图像上绘制任何想要绘制的内容,然后消除“内部” Composite也检查一下。

不要忘记处理您的图像!菜鸟的错误。

于 2013-09-30T14:23:22.643 回答