From 5a75df616b75668d2cd1262dbca4cc9689180d6f Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Fri, 17 Oct 2014 19:17:34 +0200 Subject: [PATCH] Much better bootup process for GUI - GUI is now centered and 1024x800 by default - SplashScreen stays on top - SplashScreen loads image faster --- src/eva2/gui/Main.java | 20 +++----------------- src/eva2/gui/SplashScreen.java | 23 ++++++++++++----------- 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/src/eva2/gui/Main.java b/src/eva2/gui/Main.java index 216d9fd6..926742aa 100644 --- a/src/eva2/gui/Main.java +++ b/src/eva2/gui/Main.java @@ -332,7 +332,7 @@ public class Main extends JFrame implements OptimizationStateListener { /* Create main frame with GridBagLayout */ setTitle(EvAInfo.productName); setLayout(new GridBagLayout()); - setMinimumSize(new Dimension(800, 600)); + setMinimumSize(new Dimension(1024, 800)); /* Creates the desktopPane for Plot/Text Output */ desktopPane = new JExtDesktopPane(); @@ -358,13 +358,6 @@ public class Main extends JFrame implements OptimizationStateListener { // TODO: use setIconImages (for better support of multiple icons when changing programs etc.) setIconImage(Toolkit.getDefaultToolkit().createImage(bytes)); - try { - Thread.sleep(200); - } catch (Exception e) { - System.out.println("Error" + e.getMessage()); - } - - LoggingPanel logPanel = new LoggingPanel(); logPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); @@ -373,6 +366,8 @@ public class Main extends JFrame implements OptimizationStateListener { createActions(); setSize(800, 600); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); + setLocation((int) ((screenSize.width - this.getWidth()) / 2), (int) ((screenSize.height - this.getHeight()) / 2.5)); /* Create a new ConfigurationPanel (left side) */ configurationPane = new JPanel(new GridBagLayout()); @@ -476,15 +471,6 @@ public class Main extends JFrame implements OptimizationStateListener { configurationPane.setVisible(true); } - if (!(this.isVisible())) { - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - this.setLocation((int) ((screenSize.width - this.getWidth()) / 2), (int) ((screenSize.height - this.getHeight()) / 2.5)); - this.pack(); - this.setSize(screenSize); - this.setVisible(true); - this.setVisible(true); - } - // if this message is omitted, the stupid scroll pane runs to // the end of the last line which is ugly for a long class path LOGGER.info("EvA2 ready"); diff --git a/src/eva2/gui/SplashScreen.java b/src/eva2/gui/SplashScreen.java index b26c01e3..11db5521 100644 --- a/src/eva2/gui/SplashScreen.java +++ b/src/eva2/gui/SplashScreen.java @@ -7,13 +7,23 @@ import javax.swing.*; import java.awt.*; -class SplashScreen extends Frame { +class SplashScreen extends JWindow { private static final long serialVersionUID = 1281793825850423095L; private String imgLocation; public SplashScreen(String imgLoc) { imgLocation = imgLoc; + BasicResourceLoader loader = BasicResourceLoader.instance(); + byte[] bytes = loader.getBytesFromResourceLocation(imgLocation, true); + ImageIcon ii = new ImageIcon(Toolkit.getDefaultToolkit().createImage(bytes)); + JLabel splashLabel = new JLabel(ii); + + this.add(splashLabel); + this.pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); + this.setLocation(screenSize.width / 2 - this.getSize().width / 2, screenSize.height / 2 - this.getSize().height / 2); + setAlwaysOnTop(true); } /** @@ -26,16 +36,7 @@ class SplashScreen extends Frame { * dispatch thread. */ public void splash() { - JWindow splashWindow = new JWindow(this); - BasicResourceLoader loader = BasicResourceLoader.instance(); - byte[] bytes = loader.getBytesFromResourceLocation(imgLocation, true); - ImageIcon ii = new ImageIcon(Toolkit.getDefaultToolkit().createImage(bytes)); - JLabel splashLabel = new JLabel(ii); - splashWindow.add(splashLabel); - splashWindow.pack(); - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - splashWindow.setLocation(screenSize.width / 2 - splashWindow.getSize().width / 2, screenSize.height / 2 - splashWindow.getSize().height / 2); - splashWindow.setVisible(true); + this.setVisible(true); } } \ No newline at end of file