Inserindo barra de progresso[RESOLVIDO]

6 respostas
DANIEL35
Olá amigos, preciso inserir uma barra de progresso em tela de apresentação que desenvolvi para um programa. Esta tela está com um temporizador de 4 segundos e depois aparecera a tela de login que criei. Como poderia colocar uma barra de progresso nessa primeira tela de apresentação com 4 segundos também? Alguém poderia em auxiliar, por favor? Obrigado. Vejam o código:
import java.awt.*;  
import javax.swing.*;
import java.awt.event.*; 

public class TelaIntroducao extends JFrame {   
  
    public TelaIntroducao() {         
       new TelaLogar();
     
    }  
}
class Academia extends JFrame {  
    private JPanel jContentPane;  
    private JLabel lblSplash;    
    public Academia(JFrame nextFrame) {  
        initialize();  
        this.nextFrame = nextFrame;  
   }    
    private void initialize() {  
        setSize(550, 550);
        setUndecorated(true);
        setResizable(false);
        setLocationRelativeTo(null); 
        setContentPane(getJContentPane());    
        closeTimer = new Timer (4000, new ActionListener() {  
            public void actionPerformed(ActionEvent e) {  
                Academia.this.dispose();  
            }  
        });  
        closeTimer.start();  
        this.addWindowListener(new WindowAdapter() {  
            public void windowClosed(WindowEvent e) {  
                closeTimer.stop();  
                nextFrame.setVisible(true);  
            }  
        });  
    }  
    private JPanel getJContentPane() {  
        if (jContentPane == null) {  
            jContentPane = new JPanel();
            jContentPane.setBackground(Color.RED); 
            
            Icon bug = new ImageIcon("travelbug.gif");   
            JLabel l1 = new JLabel(new ImageIcon("C:\PPI\Introducao.jpg")); 
            jContentPane.add(l1);
        }  
        return jContentPane;  
    }  
      
    private Timer closeTimer;  
    private JFrame nextFrame;  
}

6 Respostas

E
package guj;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.Timer;

public class ExemploSplashBarraProgresso extends JFrame {
	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JLabel lblSplash = null;
	private JProgressBar prbProgresso = null;
	private Timer timer = null;
	public ExemploSplashBarraProgresso() {
		super();
		initialize();
	}
	private void initialize() {
		this.setSize(375, 200);
		this.setContentPane(getJContentPane());
		this.setTitle("Exemplo de Splash com Barra de Progresso");
		// Vou mostrar 100 passos (cada passo deve durar 4000 / 100 = 40 ms então)
		// No último passo, só para facilitar, vou fechar esta janela, você pode fazer
		// outra coisa. 
		timer = new Timer(40, new ActionListener() {
			private int step = 0;
			
			@Override
			public void actionPerformed(ActionEvent e) {
				step++;
				prbProgresso.setValue(step);
				if (step == 100) {
					ExemploSplashBarraProgresso.this.dispose();
				}
			}
		});
		timer.start();
	}
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			lblSplash = new JLabel();
			lblSplash.setText("Splash!");
			lblSplash.setHorizontalAlignment(SwingConstants.CENTER);
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(lblSplash, BorderLayout.CENTER);
			jContentPane.add(getPrbProgresso(), BorderLayout.SOUTH);
		}
		return jContentPane;
	}
	private JProgressBar getPrbProgresso() {
		if (prbProgresso == null) {
			prbProgresso = new JProgressBar();
		}
		return prbProgresso;
	}
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				ExemploSplashBarraProgresso thisClass = new ExemploSplashBarraProgresso();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}	
	
}  //  @jve:decl-index=0:visual-constraint="10,10"

Dê uma olhada como foi feito.

DANIEL35

Beleza, muito bom!! Consegui resolver todos os problemas de telas, muito obrigado mesmo. Só mais uma coisa, teria como alterar a cor da barra de progresso? Obrigado.

DANIEL35
DANIEL35:
Olá amigos, preciso inserir uma barra de progresso em tela de apresentação que desenvolvi para um programa. Esta tela está com um temporizador de 4 segundos e depois aparecera a tela de login que criei. Como poderia colocar uma barra de progresso nessa primeira tela de apresentação com 4 segundos também? Alguém poderia em auxiliar, por favor? Obrigado. Vejam o código:
import java.awt.*;  
import javax.swing.*;
import java.awt.event.*; 

public class TelaIntroducao extends JFrame {   
  
    public TelaIntroducao() {         
       new TelaLogar();
     
    }  
}
class Academia extends JFrame {  
    private JPanel jContentPane;  
    private JLabel lblSplash;    
    public Academia(JFrame nextFrame) {  
        initialize();  
        this.nextFrame = nextFrame;  
   }    
    private void initialize() {  
        setSize(550, 550);
        setUndecorated(true);
        setResizable(false);
        setLocationRelativeTo(null); 
        setContentPane(getJContentPane());    
        closeTimer = new Timer (4000, new ActionListener() {  
            public void actionPerformed(ActionEvent e) {  
                Academia.this.dispose();  
            }  
        });  
        closeTimer.start();  
        this.addWindowListener(new WindowAdapter() {  
            public void windowClosed(WindowEvent e) {  
                closeTimer.stop();  
                nextFrame.setVisible(true);  
            }  
        });  
    }  
    private JPanel getJContentPane() {  
        if (jContentPane == null) {  
            jContentPane = new JPanel();
            jContentPane.setBackground(Color.RED); 
            
            Icon bug = new ImageIcon("travelbug.gif");   
            JLabel l1 = new JLabel(new ImageIcon("C:\PPI\Introducao.jpg")); 
            jContentPane.add(l1);
        }  
        return jContentPane;  
    }  
      
    private Timer closeTimer;  
    private JFrame nextFrame;  
}
E

A cor da sua barra de progresso é uma propriedade que depende do seu look & feel. É bom você dar uma procuradinha por “color JProgressBar” no Google.

(No caso particular do L&F Nimbus, essa cor é um pouco difícil de ajustar).

DANIEL35

Correto, muito obrigado pela atenção. Você me ajudou muito.

THIAGOANALISTA

Tem como me enviar o seu código para dar uma estuda e aprender como fazer o splash?

Criado 16 de junho de 2010
Ultima resposta 17 de set. de 2010
Respostas 6
Participantes 3