Olá pessoal,
Alguém sabe me dizer se existe algum componente parecido com o JDesktopPane no SWT.
Por sempre que tenho que abrir uma “subjanela” eu acabo tendo que criar outro shell.

Olá pessoal,
Alguém sabe me dizer se existe algum componente parecido com o JDesktopPane no SWT.
Por sempre que tenho que abrir uma “subjanela” eu acabo tendo que criar outro shell.

Vc tem que usar a classe decoration
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Decorations;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class DecroationStyles {
public static void main(String[] args) {
Display display = new Display();
Shell composite = new Shell(display);
composite.setText("Decorations Example");
composite.setLayout(new GridLayout(3, true));
// The SWT.BORDER style
Decorations d = new Decorations(composite, SWT.BORDER);
// d = new Decorations(composite, SWT.CLOSE);
// d = new Decorations(composite, SWT.MIN);
// d = new Decorations(composite, SWT.MAX);
// d = new Decorations(composite, SWT.NO_TRIM);
// d = new Decorations(composite, SWT.RESIZE);
// d = new Decorations(composite, SWT.TITLE);
// d = new Decorations(composite, SWT.ON_TOP);
// d = new Decorations(composite, SWT.TOOL);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.BORDER");
composite.open();
while (!composite.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
e só definir o style certo
que tem o mesmo efeito
OK, valeu cara,
Mas como eu faço, por exemplo, para abrir e fechar janelas internas como se faz com o JInternalFrame no JDesktopPane em swing?
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class DecorationsExample {
public void run() {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Decorations Example");
createContents(shell);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
public void createContents(Composite composite) {
// There are nine distinct styles, so create
// a 3x3 grid
composite.setLayout(new GridLayout(3, true));
// The SWT.BORDER style
Decorations d = new Decorations(composite, SWT.BORDER);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.BORDER");
// The SWT.CLOSE style
d = new Decorations(composite, SWT.CLOSE);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.CLOSE");
// The SWT.MIN style
d = new Decorations(composite, SWT.MIN);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.MIN");
// The SWT.MAX style
d = new Decorations(composite, SWT.MAX);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.MAX");
// The SWT.NO_TRIM style
d = new Decorations(composite, SWT.NO_TRIM);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.NO_TRIM");
// The SWT.RESIZE style
d = new Decorations(composite, SWT.RESIZE);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.RESIZE");
// The SWT.TITLE style
d = new Decorations(composite, SWT.TITLE);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.TITLE");
// The SWT.ON_TOP style
d = new Decorations(composite, SWT.ON_TOP);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.ON_TOP");
// The SWT.TOOL style
d = new Decorations(composite, SWT.TOOL);
d.setLayoutData(new GridData(GridData.FILL_BOTH));
d.setLayout(new FillLayout());
new Label(d, SWT.CENTER).setText("SWT.TOOL");
}
public static void main(String[] args) {
new DecorationsExample().run();
}
}
Ahh, entendi!
Valew Cara, muito obrigado!!!