Для Eclipse E4 вы можете добавить этот метод в свой класс E4LifeCycle.Это сделает ваш прикладной центр основным монитором.
Это сделает расположение оболочки вашего приложения в центре экрана, если вы откроете WizardDialog, в котором вы установили правильное значение parent shell
, тогда все станет на свои места
@Inject
@Optional
public void receiveActiveShell(@Named(IServiceConstants.ACTIVE_SHELL) final Shell shell) {
try {
if (shell != null) {
final Display display = shell.getDisplay();
final Monitor primary = display.getPrimaryMonitor();
final Rectangle displayBounds = primary.getBounds();
shell.setSize(displayBounds.width - 100, displayBounds.height - 100);
final Point size = shell.getSize();
Point defaultLocation = new Point((int) (displayBounds.width - size.x) / 2, (int) (displayBounds.height - size.y) / 2);
shell.setLocation(this.defaultLocation);
}
} catch (Exception e) {
LOGGER.error("Execption ocuured in Active Shell", e); //$NON-NLS-1$
}
}