Solved

Splash (logo) screen in Java

Posted on 2000-03-26
1
298 Views
Last Modified: 2012-05-04
How to display an application logo screen (a rectangular graphic) in Java? From what I know every Java application must start with a frame but I need to start it with some kind of container with no buttons or titlebars but with an image inside.
0
Comment
Question by:mrmind3
1 Comment
 
LVL 2

Accepted Solution

by:
stalefish earned 100 total points
ID: 2659369
I found this at http://www.tactika.com/realhome/realhome.html

import java.awt.*;
 import java.awt.event.*;

 public class Splash extends Window {
   private Image splashImage;
   private int imgWidth, imgHeight;
   private String imgName;
   private static final int BORDERSIZE = 5;
   private static final Color BORDERCOLOR = Color.blue;
   Toolkit tk;
 
   public Splash(Frame f, String imgName) {
     super(f);
     this.imgName = imgName;
     tk = Toolkit.getDefaultToolkit();
     splashImage = loadSplashImage();
     showSplashScreen();
     f.addWindowListener(new WindowListener());
     }
   public Image loadSplashImage() {
     MediaTracker tracker = new MediaTracker(this);
     Image result;
     result = tk.getImage(imgName);
     tracker.addImage(result, 0);
     try {
       tracker.waitForAll();
       }
     catch (Exception e) {
       e.printStackTrace();
       }
     imgWidth = result.getWidth(this);
     imgHeight = result.getHeight(this);
     return (result);
     }

   public void showSplashScreen() {
     Dimension screenSize = tk.getScreenSize();
     setBackground(BORDERCOLOR);
     int w = imgWidth + (BORDERSIZE * 2);
     int h = imgHeight + (BORDERSIZE * 2);
     int x = (screenSize.width - w) /2;
     int y = (screenSize.height - h) /2;
     setBounds(x, y, w, h);
     setVisible(true);
     }

   public void paint(Graphics g) {
     g.drawImage(splashImage, BORDERSIZE, BORDERSIZE,
       imgWidth, imgHeight, this);
     }

   class WindowListener extends WindowAdapter {
     public void windowActivated(WindowEvent we) {
       setVisible(false);
       dispose();
       }
     }
   }


The following example use this image  (jht.gif) as the splash image.

 import java.awt.*;
 import java.awt.event.*;

 public class TestSplash {
   MyFrame theFrame;
   
   
   public static void main (String args[]){
     TestSplash t = new TestSplash();
     t.createMainFrame();
     }
     
   private void createMainFrame() {
     theFrame = new MyFrame("A Dummy Frame");  
     theFrame.setVisible(true);
     }

 }

 class MyFrame extends Frame {
   Splash mySplash;
   public MyFrame(String title){
     super(title);
     addWindowListener
       (new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
           System.exit(0);
           }
         }
        );
     mySplash = new Splash(this, "jht.gif");
     
     // dummy delay so we can see the Splash!
     for(int i = 0; i < 3000; i++) {
       System.out.println(i) ;
       }
     setSize(200,200);
     }      
   }
0

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Java JRE greater than 1.6 5 63
check java version using powershell 13 93
type mismatch (Object[] to double[] 4 24
hibernate example issues from command prompt 10 41
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question