0
사용자 지정 컨트롤에서 선택 기능을 구현하려고합니다. 이 컨트롤에는 이미지가 포함되어 있으며 이미지를 선택하면 푸른 빛을냅니다. 비트 단위로 이미지를 변경하고 싶지 않습니다.SWT 컨트롤이나 컨트롤을 투명 레이어로 덮는 방법은 무엇입니까?
다른 컨트롤보다 반투명 한 파란색 사각형을 그리면 선택을 시뮬레이션 할 수 있습니까?
UPDATE
다음 코드는 더 어떤 도면 보여줍니다 : Opal
에서 오버레이가
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.Paint'를 듣고 ['GC'] (http://help.eclipse.org/indigo/nftopic/org.eclipse.platform)로'Image'를 그립니다. .doc.isv/reference/api/org/eclipse/swt/graphics/GC.html) 그리고 위에'GC# setAlpha (int)'를 사용하여 반투명 사각형을 그린다. 자세한 내용은 [this] (http://eclipse.org/articles/Article-SWT-graphics/SWT_graphics.html)을 참조하십시오. – Baz
복합 재료를 그릴 방법은 무엇입니까? 내 그림이 복합체를 구성하는 다른 컨트롤 아래에 나타나는 것 같습니다. –
부모 'Composite'가 아닌 이미지를 담고있는'Label'에 리스너를 추가해야합니다. – Baz