Como fazer uma Splash Screen em Java

Olá pessoal…

Hoje irei mostrar como fazer uma Splash Screen (tela de Splash) utilizando a linguagem Java.


Uma tela de Splash é uma tela de apresentação e de carregamento de um programa, que geralmente é mostrada enquanto carrega bibliotecas e dlls, como por exemplo, ao abrir o Libre Office, o Microsoft Office ou o Photoshop, eles mostram uma tela de Splash de carregamento.

Primeiramente, devemos ter uma imagem que será utilizada como Splash, iremos utilizar uma imagem com as dimisões de 700 x 300 (largura x altura), como abaixo:

Imagem de Splash

Imagem de Splash

A imagem ficará dentro de uma subpasta nomeada de ‘imagens’.
Temos que ter também, uma função que será chamada pelo Splash, no caso foi desenvolvido um menu simples com dois botões:

Menu Principal

Menu Principal

Abaixo os códigos fonte.

//Bibliotecas
import javax.swing.*;
import java.awt.*;
import java.awt.event.*; 

//Classe Splash, que extende da JFrame
public class Splash extends JFrame
{
  private static JLabel lbSplash;          //label responsável por conter a imagem
  private ImageIcon imSplash;              //imagem que será mostrada no label

  //função principal que será carregada
  public static void main(String arg[]){
    //Criando a janela de Splash
    Splash s = new Splash();
    
    //definindo o tipo de fechamento, o tamanho, tirando a barra de títulos, deixando no centro, definindo um icone e mostrando a janela
    s.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    s.setSize(700,300);
    s.setUndecorated(true);
    s.setLocationRelativeTo(null);
    s.setVisible(true);
    
    //forçando a espera de 1500 milissegundos (1,5 segundos)
    try {
      Thread.sleep (1500);
    }
    catch (InterruptedException ex) {}
    
    //fechando a janela
    s.dispose();
  }
  
  //função responsável por carregar os dados da janela (layout e imagem)
  public Splash() {
    //definindo o layout como nulo
    setLayout(null);
    
    //setando a imagem de splash
    imSplash = new ImageIcon("imagens/splash_screen.png");
    
    //adicionando a imagem no label e mudando o tamanho
    lbSplash = new JLabel(imSplash);
    lbSplash.setBounds(0,0,700,300);
    
    //adicionando componentes na janela
    add(lbSplash);
  }
  
  //função ao fechar a splash
  public void dispose(){
    //criar a tela de menu, e fechar o splash
    new Menu();
    super.dispose();
  }
    
}
//Bibliotecas - Gráficos
import javax.swing.*;
import javax.swing.JOptionPane;

//Bibliotecas - Eventos
import java.awt.*;
import java.awt.event.*;

//Classe de Menu que é extendida da JFrame e implementa ActionListener
public class Menu  extends JFrame implements ActionListener
{
  //Declaração de botões - Ok, Cancelar e Esqueci
  private JButton btOk, btCancel;
  
  //Função que carrega dados da tela de login
  public Menu() {
    //setando o layout como null
    setLayout(null);
		    
    //botão Ok
    btOk = new JButton("OK");
    btOk.setMnemonic('O');
    btOk.setToolTipText("Botão OK");
    btOk.setForeground(Color.RED);
    btOk.addActionListener(this);
    btOk.setBounds(20,15,100,20);
    add(btOk);
    
    //botão Cancelar
    btCancel = new JButton("Cancelar");
    btCancel.setMnemonic('C');
    btCancel.setToolTipText("Botão Cancelar");
    btCancel.setForeground(Color.RED);
    btCancel.addActionListener(this);
    btCancel.setBounds(20,45,100,20);
    add(btCancel);
		    
    //Configurações da janela
    setSize(150,120);
    setLocationRelativeTo(null);
    getContentPane().setBackground(Color.WHITE);
    setTitle("Menu");
    setResizable(false);
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    setVisible(true);
  }

  //Interação com usuário - cliques nos botões
  public void actionPerformed(ActionEvent acesso)
  {    
    //botão Ok		
    if (acesso.getSource() == btOk) {
      System.out.println("Botão OK pressionado!");
    }
    
    //botão Cancelar
    if (acesso.getSource() == btCancel) {
      System.out.println("Botão Cancelar pressionado!");
    }
	      
  }
  
}

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/Java.

Download do código fonte e imagens:
Download pelo OneDrive
Ou
Download pelo 4Shared

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas na TOTVS Oeste Paulista Bauru. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

4 respostas em “Como fazer uma Splash Screen em Java

Deixe uma resposta