2017-02-18 6 views
0

Ich entwickle eine Anwendung und mein Arbeitgeber fordert, dass es eine absolute Größe (1024 x 768) haben sollte. Ist es möglich, dieses absolute Composite in ein anderes Composite mit Fülllayout (oder einem anderen) einzufügen und das absolute Layout immer zentralisiert zu setzen?Java SWT Zentralisiert absolute Composite auf dem Bildschirm

Ich bin ziemlich neu in der Entwicklung von Bildschirmen, so dass ich mit diesem Konzept verwirrt bin.

Vielen Dank im Voraus.

+1

ich klar bin nicht, was Sie fordern. Es ist einfach, die Größe und Position einer Shell festzulegen, ist das nicht das, was Sie wollen? –

+0

@ gre-449 Entschuldigung, wenn es nicht klar ist. –

+0

Was ich versuche zu tun ist: Ich möchte eine Shell mit Größe haben, um den Bildschirm zu füllen. Und innerhalb dieser Shell möchte ich, dass ein Composite (1024x768) immer in der Mitte des Bildschirms angezeigt wird. Die Auflösung des Computers, der darauf zugreift, spielt keine Rolle. –

Antwort

1

Sie können GridLayout verwenden, um den Composite in der Shell zu zentrieren.

Etwas wie:

Display display = new Display(); 

Shell shell = new Shell(display, SWT.SHELL_TRIM); 

shell.setText("Stack Overflow"); 

shell.setFullScreen(true); 

shell.setLayout(new GridLayout()); 

// Composite, just using a border here to show where it is 
Composite composite = new Composite(shell, SWT.BORDER); 

// Center composite in the shell using all available space 
composite.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true)); 

composite.setLayout(new GridLayout()); 

// Something to put in the composite 
Label label = new Label(composite, SWT.BEGINNING); 
label.setText("Text"); 

shell.open(); 

while (!shell.isDisposed()) { 
    if (!display.readAndDispatch()) 
     display.sleep(); 
    } 

display.dispose(); 
+0

Danke, Greg. Das war genau das, was ich brauchte. –