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
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??
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!