Como proyecto favorito, he estado jugando con el concepto de integrar los efectos Aero Glass en mi aplicación SWT. Łukasz Milewski has an excellent blog post explicar cómo esto se puede lograr, que prácticamente se reduce a esto:Combinación de efectos Aero Glass y SWT
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FormLayout());
final MARGINS margins = new MARGINS();
margins.cyTopHeight = -1;
final Composite c = new Composite(shell, SWT.NORMAL);
c.setBackground(new Color(shell.getDisplay(), new RGB(0, 0, 0)));
final FormData fd = new FormData();
fd.top = new FormAttachment(0, 0);
fd.left = new FormAttachment(0, 0);
fd.right = new FormAttachment(100, 0);
fd.bottom = new FormAttachment(100, 0);
c.setLayoutData(fd);
OS.DwmExtendFrameIntoClientArea(shell.handle, margins);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
Esto funciona muy bien, hasta que desee agregar un control. Esto se traduce en negro transparente restante:
A follow-up post demuestra cómo hacer esto, también, pero requiere la modificación de la biblioteca SWT. (Al menos, creo que sí, porque las funciones SWT privadas se anulan con @Override
.)
¿Cómo puedo evitar que los controles se vuelvan transparentes? Aún mejor: ¿cómo puedo beneficiarme de la transparencia (por ejemplo, colocar imágenes en él like so), pero usarlo de manera sensata?
¿Puedes agregar enlaces activos? – Supuhstar