mam SWT kreatora stronę jako mojego macierzystego powłoki, do tworzenia innej powłoki na kliknięcie przycisku piszę następujący kodwytwarzający powłoki SWT w centrum jego rodzica powłoki
Shell permissionSetShell = new Shell(Display.getCurrent().getActiveShell(), SWT.CENTER|SWT.DIALOG_TRIM|SWT.APPLICATION_MODAL);
permissionSetShell.setText(PropertyClass.getPropertyLabel(QTLConstants.PERMISSION_SET_COLUMN_LABEL));
// Add shell to the center of parent wizard
permissionSetShell.setLayout(componentsRenderer.createGridLayout(1, false, 0, 5, 0, 0));
Monitor primary = Display.getCurrent().getPrimaryMonitor();
Rectangle bounds = primary.getBounds();
Rectangle rect = Display.getCurrent().getActiveShell().getBounds();
int x = bounds.x + (bounds.width - rect.width)/2;
int y = bounds.y + (bounds.height - rect.height)/2;
permissionSetShell.setLocation (x, y);
lecz jako powłoka dziecko oznacza to, powłoka nie jest umieszczona w środku kreatora SWT, który jest powłoką rodzica, dlaczego?
Czy sprawdziłeś, czy 'bounds' i' rect' rzeczywiście zawierają poprawne informacje? – Baz
Baza, tak, zawiera informacje –
Ale czy informacje są poprawne? – Baz