jProgressBar

Pessoal…eu queria utilizar um jProgressBar da seguinte forma, quando ele terminar de carregar ele abrir uma outra janela.
Ja testei varios codigos mais nenhum funcionou…Vcs poderiam me ajudar???

Vlw

O que exatamente você quer abrir, se puder colocar um pedacinho do codigo para analisarmos…

Tipo assim…quando a aplicação abrir eu vou ter o jProgressBar em um jPanel, e quando ele terminar de carregar eu queria q desse um setVisible(false) no jPanel q a jProgressBar esta e um setVisible(true) no outro jPanel que esta oculto. Deu pra entender mais ou menos o to tentando fazer?

Como você está incrementando seu JProgressBar?
Está usando valores determinados ou usou o modo indeterminado?
veja: http://www.guj.com.br/posts/list/48799.java

Se você setou o valor máximo dele é só você verificar se o valor já chegou no máximo usando o método
[i]getValue/i no método que incrementa o JProgressBar, ficou meio confuso? Posta mais ou menos como você fez.

Tenta usar código abaixo, você pode colocá-lo no primeiro JPanel, o que contém a JProgressBar, e você usa-o para incrementar o valor do JProgress, no exemplo verifico se chegou a 100, no meu caso eu já setei o valor máximo no JProgressBar para 100.

[code] public void incProgress(int progress) {
final int theProgress = progress;
SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            progressBar.setValue(theProgress);
            getOwner().repaint();
            if(progress >= 100){setVisible(false);}
        }
    });
}

[/code]

É uma SplashScreen (Tela de apresentação) que você está tentando fazer?

Eh uma splash sim…agora tipo assim…eu sou totalmente iniciante e para tentar fazer a aplicação eu to usando swing(peguei o jProgressBar1 e soltei no jPanel), então o pensamento eh o seguinte…na hora q inicio a aplicacao apareceria o jProgressBar em cima do jPanel e kuando ele terminar de carregar ele iria sumir e aparecer o novo jPanel.

entendeu mais ou menos minha ideia confusa?? :smiley: :smiley:

Ok!

1ª Maneira:
É o seguinte você tem 3 arquivos:

Main.class, é a que inicia tudo
MainWindow.class é o formulário/panel principal
SplashScreen.class que é o seu JPanel com imagem e o JProgressBar

no Main você instancia o MainWindow.
no MainWindow no construtor você instancia o SplashScreen e set o valor máximo dela (use o método no final do POST: setProgressMax) antes de tudo, e após toda a iniciação dos componentes e tudo mais você coloca:

[i]setVisible/i para mostrar o MainWindow e em seguida você coloca a instância do SplahScreen .dispose(); ou [i]setVisible/i;

2ª maneira: Usa a SplashScreen do GUJ
http://www.guj.com.br/java.tutorial.artigo.25.1.guj

3ª maneira: Eu comecei com esta.
Usa a Fast Splash Screen
http://www.randelshofer.ch/oop/javasplash/javasplash.html
http://www.javalobby.org/java/forums/t18109.html (com o código fonte)

4ª maneira: Com temporizador
http://lossurdojava.blogspot.com/2007/02/swing-exemplo-de-splash-screen.html

5ª e última maneira: O suporte do Java 6 para SplashScreen
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/splashscreen/

Para incrementar o JProgressBar, coloque na classe SplashScreen, onde você colocou sua JProgressBar, note que o nome da instância dela é progressBar.

[code] // Funções para manipulação da barra de progresso
public void setProgressMax(int maxProgress) {
progressBar.setMaximum(maxProgress);
}

public void incProgress(int progress) {
    final int theProgress = progress;
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            progressBar.setValue(theProgress);
            getOwner().repaint();
        }
    });
}[/code]

Qualquer coisa escreve mais!