V
Vayu
Gast
Servus,
folgendes Problem habe ich:
ich möchte eine anwendung mit SWT schreiben, die sich quasi direkt auf den desktop legt und nur eine Tabelle + 1-2 buttons enthält. Ich dacht mir ich mach das mit SWT. Da die Applikation, bis auf die Tabelle und die Controls durchsichtig sein soll hab ich mal ein wenig gegoggled und rausgefunden, dass man ab SWT 3.4 den Alpha-Wert der Shell setzen kann, leider wird dadurch nicht nur die Shell durchsichtig, sondern auch alle Inhalte ... wie kann ich das in SWT lösen, dass nur die Shell an sich durchsichtig wird und nicht ihre Inhalte.
Bestes Beispiel ist wohl der Rainlendar, falls den wer kennt.
[HIGHLIGHT="Java"]import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.MouseMoveListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class Test {
Display display;
Shell shell;
public Test() {
display = new Display();
shell = new Shell(display, SWT.NO_TRIM);
Label l = new Label(shell, SWT.NONE);
l.setText("BLABLA");
l.pack(true);
shell.setAlpha(50); // <---
shell.open();
}
public void mainLoop() {
while (!shell.isDisposed()) {
if( !display.readAndDispatch() )
display.sleep();
}
display.dispose();
}
public static void main(String args[]) {
Test t = new Test();
t.mainLoop();
}
}[/HIGHLIGHT]
folgendes Problem habe ich:
ich möchte eine anwendung mit SWT schreiben, die sich quasi direkt auf den desktop legt und nur eine Tabelle + 1-2 buttons enthält. Ich dacht mir ich mach das mit SWT. Da die Applikation, bis auf die Tabelle und die Controls durchsichtig sein soll hab ich mal ein wenig gegoggled und rausgefunden, dass man ab SWT 3.4 den Alpha-Wert der Shell setzen kann, leider wird dadurch nicht nur die Shell durchsichtig, sondern auch alle Inhalte ... wie kann ich das in SWT lösen, dass nur die Shell an sich durchsichtig wird und nicht ihre Inhalte.
Bestes Beispiel ist wohl der Rainlendar, falls den wer kennt.
[HIGHLIGHT="Java"]import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.MouseMoveListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class Test {
Display display;
Shell shell;
public Test() {
display = new Display();
shell = new Shell(display, SWT.NO_TRIM);
Label l = new Label(shell, SWT.NONE);
l.setText("BLABLA");
l.pack(true);
shell.setAlpha(50); // <---
shell.open();
}
public void mainLoop() {
while (!shell.isDisposed()) {
if( !display.readAndDispatch() )
display.sleep();
}
display.dispose();
}
public static void main(String args[]) {
Test t = new Test();
t.mainLoop();
}
}[/HIGHLIGHT]
Zuletzt bearbeitet von einem Moderator: