diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java index d2c5019c..75aefae2 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/Wizard.java @@ -35,6 +35,7 @@ public abstract class Wizard extends JDialog { private final List<WizardPage> pages = new ArrayList<>(); private final JPanel contentPanel; private int currentPage = -1; + private boolean needsLayout = true; private final JButton btnPrev; private final JButton btnNext; @@ -89,22 +90,9 @@ public abstract class Wizard extends JDialog { // setPreferredSize(new Dimension(550, 420)); setResizable(false); - // TODO this seems broken: it only center the (still) empty frame - // later when the page is shown, it won't be centered correctly. - // Centered is the top left corner of this frame, not the actual - // center of the pages! - MainWindow.centerShell(this); // Window events addWindowListener(new WindowAdapter() { @Override - public void windowOpened(WindowEvent e) { - e.getWindow().pack(); - if (!pages.isEmpty()) { - showPage(0); - } - } - - @Override public void windowClosing(WindowEvent we) { doCancel(); } @@ -136,6 +124,20 @@ public abstract class Wizard extends JDialog { }); } + @SuppressWarnings("deprecation") + @Override + public void show() { + if (needsLayout) { + needsLayout = false; + pack(); + if (!pages.isEmpty()) { + showPage(0); + } + MainWindow.centerShell(this); + } + super.show(); + } + private void showPage(int index) { if (currentPage != -1) { WizardPage old = pages.get(currentPage); |