gpt4 book ai didi

java - 如何用一些透明层覆盖SWT控件或控件?

转载 作者:太空宇宙 更新时间:2023-11-04 15:07:11 24 4
gpt4 key购买 nike

我想在我的自定义控件中实现选择功能。该控件包含一个图像,我希望图像在选择时变成蓝色。我不想按位更改图像。

是否可以在其他控件上方绘制一些半透明的蓝色矩形来模拟选择?

更新

以下代码未显示任何绘图:

public class ImageWithCaption extends Composite {

private Label imageLabel;
private Label textLabel;

private void init() {
setLayout(new GridLayout(1, false));

imageLabel = new Label(this, SWT.NONE);
imageLabel.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));

textLabel = new Label(this, SWT.NONE);
textLabel.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));

addPaintListener(new PaintListener() {

@Override
public void paintControl(PaintEvent e) {

GC gc = e.gc;


gc.setForeground(e.display.getSystemColor(SWT.COLOR_BLUE));
gc.fillRectangle(0, 0, e.width, e.height);

}
});
}

public ImageWithCaption(Composite parent, int style) {
super(parent, style);
init();

}

public void setText(String text) {
textLabel.setText(text);
}

public String getText() {
return textLabel.getText();
}

public Image getImage() {
return imageLabel.getImage();
}

public void setImage(Image image) {
imageLabel.setImage(image);
}




}

最佳答案

透明度对于 SWT 来说是一个难题...

有来自 Opal 的叠加层

或者您可以查看 Appkit

我自己使用了 Opal 的覆盖层并对其进行了扩展以获得一些额外的功能。

关于java - 如何用一些透明层覆盖SWT控件或控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21832199/

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