•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Java section within the Software Development category of DaniWeb, a massive community of 402,631 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,249 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Java advertiser: Lunarpages Java Web Hosting
Theres no doubting that using Java Swing is time consuming on load times. So heres a demo splash screen to keep your users captivated.
You will need two classes for this example
i.e. Splash.java and SplashWindow.java
(remember line: 8 change this to match your splash image)
just change the class name to match your entry class and bobs your uncle.
Hope this has helped.... remotely
You will need two classes for this example
i.e. Splash.java and SplashWindow.java
(remember line: 8 change this to match your splash image)
just change the class name to match your entry class and bobs your uncle.
Hope this has helped.... remotely
import java.awt.Frame; import java.awt.Toolkit; import java.net.URL; public class Splash { public static void main(String[] args) { Frame splashFrame = null; URL imageURL = Splash.class.getResource("img.png"); if (imageURL != null) { splashFrame = SplashWindow.splash( Toolkit.getDefaultToolkit().createImage(imageURL) ); } else { System.err.println("Splash image not found"); } try { // Change the class name to match your entry class Class.forName("MainApp").getMethod("main", new Class[] {String[].class}).invoke(null, new Object[] {args}); } catch (Throwable e) { e.printStackTrace(); System.err.flush(); System.exit(10); } if (splashFrame != null) { splashFrame.dispose(); } } } /*END OF CLASS*/ import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Toolkit; import java.awt.Window; public class SplashWindow extends Window { /** * */ private static final long serialVersionUID = 1L; private Image splashImage; private boolean paintCalled = false; public SplashWindow(Frame owner, Image splashImage) { super(owner); this.splashImage = splashImage; MediaTracker mt = new MediaTracker(this); mt.addImage(splashImage,0); try { mt.waitForID(0); } catch(InterruptedException ie) {} int imgWidth = splashImage.getWidth(this); int imgHeight = splashImage.getHeight(this); setSize(imgWidth, imgHeight); Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize(); setLocation( (screenDim.width - imgWidth) / 2, (screenDim.height - imgHeight) / 2 ); } @Override public void update(Graphics g) { g.setColor(getForeground()); paint(g); } @Override public void paint(Graphics g) { g.drawImage(splashImage, 0, 0, this); if (! paintCalled) { paintCalled = true; synchronized (this) { notifyAll(); } } } @SuppressWarnings("deprecation") public static Frame splash(Image splashImage) { Frame f = new Frame(); SplashWindow w = new SplashWindow(f, splashImage); w.toFront(); w.show(); if (! EventQueue.isDispatchThread()) { synchronized (w) { while (! w.paintCalled) { try { w.wait(); } catch (InterruptedException e) {} } } } return f; } }
Post Comment
•
•
•
•
DaniWeb Marketplace (Sponsored Links)