Improve company productivity with a Business Account.Sign Up

x
?
Solved

Splash (logo) screen in Java

Posted on 2000-03-26
1
Medium Priority
?
312 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 400 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

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…

608 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