0
캔버스를 반투명 배경으로 만들고 싶습니다. 그래서 시도 이런 식으로 뭔가 : 나는 공을 넣어하지 않는 한 내가 만약 내가 캔버스의 배경으로 사용반투명 배경을 가진 캔버스
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class Main {
public static int WIDTH=500;
public static int HEIGHT=70;
public static void main (String [] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setSize(WIDTH,HEIGHT);
shell.setLayout(new GridLayout());
shell.setBackground(display.getSystemColor(SWT.COLOR_RED));
create(shell);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
private static void create(Shell shell){
Canvas c= new Canvas(shell, SWT.DOUBLE_BUFFERED);
GridData gd= new GridData();
gd.heightHint=HEIGHT-30;
gd.widthHint=WIDTH-30;
c.setLayoutData(gd);
c.setBackgroundMode(SWT.INHERIT_FORCE);
c.setBackground(new Color(shell.getDisplay(), 255, 255, 255, 100));
}
}
그러나 컬러 (100)의 알파 부분은, SWT에 의해 고려하지 않는 것 0을 사용하면 캔버스가 완전히 투명 해집니다. 다른 모든 경우에는 불투명합니다. 여기에 실수를하거나 SWT 문제가 있습니까? 그렉-449은 Windows 환경에 대한 SWT에서 버그가 지적
나는 윈도우 8
코드는 맥 OS에서 작동 확인 그래서 이것은 Windows 제한 일 수 있습니다 (Windows에서는 테스트 할 수 없습니다). –
또한 색상 투명성 코드가 최신이며 최신 릴리스에서 업데이트되었으므로 최신 버전의 SWT가 있는지 확인하십시오. –
Greg, STW 버전을 사용하고 있습니까? 저는 4.629 버전입니다. – navy1978