gpt4 book ai didi

java - 如何自定义输入EMFForms生成的 boolean 值控件的背景色?

转载 作者:行者123 更新时间:2023-11-30 11:12:40 25 4
gpt4 key购买 nike

我有一个 EMF 模型,我从中生成了 UI 表单并将其嵌入到向导中。

复选框显示为白色背景(见下文),看起来不太好。

Screenshot

如何更改复选框的背景颜色(避免白色 strip )?

我尝试使用 BooleanControlSWTRenderer 子类(见下文),但没有成功。

public class MyRenderer extends BooleanControlSWTRenderer {

@Override
protected Control createSWTControl(Composite parent, Setting setting) {


final Button check = new Button(parent, SWT.CHECK);
check.setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_GRAY));
check.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_boolean"); //$NON-NLS-1$

return check;

}
}

更新 1(05.11.2014 17:12 MSK):按照建议调用 check.setBackground(null) here也不起作用。

更新 2 (05.11.2014 17:34 MSK):修改代码为此

@Override
protected Control createSWTControl(Composite parent, Setting setting) {
Button check = new Button(parent, SWT.CHECK);

check.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_GRAY));
parent.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_GRAY));
parent.setBackgroundMode(SWT.INHERIT_FORCE);

check.setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_boolean"); //$NON-NLS-1$

return check;

}

结果如下图。

Screenshot 2

最佳答案

这可能是您需要的:

@SuppressWarnings("restriction")
public class MyRenderer extends BooleanControlSWTRenderer {

@Override
protected Control createSWTControl(final Composite parent, Setting setting) {
final Button check = new Button(parent, SWT.CHECK);
check.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent arg0) {
check.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_GRAY));
}
});
return check;

}
}

与您的 MyRenderer 的不同之处在于我们使用了额外的解决方法并添加了一个绘画监听器 due to this problem .

我已经尝试过了并且有效 see this page .

关于java - 如何自定义输入EMFForms生成的 boolean 值控件的背景色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26758451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com