Olá pessoal.
Estou com muita dificuldade em um projeto porque preciso fazer um menu em cascata.
Na verdade eu preciso q qndo eu clicar em um botão aparecer logo abaixo dele outros botões em sequencia determinado por um espaço de tempo.
Será q alguém consegue me ajudar.
O uso do método sleep() funciona da seguinte forma:
Thread.sleep(milisegundos);
Dê uma olhada:
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html#sleep(long)
Certo … isso eu consigo fazer … so q dessa maneira todos os meus botoes aparecem juntos dpois do espaço de tempo…
sendo q o q eu preciso eh q apareça um de cada vez .
Não sei ao certo como deixar o botão “invisível”, mas seria algo em torno disso:
Thread.sleep(500); //500 milisegundos
jButton1.setBorderPainted(false);
Thread.sleep(800); //800 milisegundos
jButton2.setBorderPainted(false);
Thread.sleep(1000); //1000 milisegundos
jButton3.setBorderPainted(false);
Eu estava tentando dessa maneira antes di receber a resposta anterior … mas ta dando um erro.
o Thread.sleep tem q ter um try/catch ?
[quote=vebas]Eu estava tentando dessa maneira antes di receber a resposta anterior … mas ta dando um erro.
o Thread.sleep tem q ter um try/catch ?[/quote]
Sim. A assinatura do método sleep: public static void sleep(long millis) throws InterruptedException
exige isso.
Sendo assim então eu tenho q criar o metodo anteriormente e chamá-lo a cada vez q eu precisar.
[quote=vebas]Eu estava tentando dessa maneira antes di receber a resposta anterior … mas ta dando um erro.
o Thread.sleep tem q ter um try/catch ?[/quote]
exato.
try{
System.out.println("Hello #1");
Thread.sleep(500);
System.out.println("Hello #2");
Thread.sleep(800);
System.out.println("Hello #3");
Thread.sleep(1000);
System.out.println("Hello #4");
}
catch (InterruptedException ex) {
System.out.println(ex);
}
Obrigado pela ajuda.
Mas mesmo assim os botões não estaum aparecendo em sequencia . estão aparecendo todo de uma so vez como ja havia acontecido.
[quote=vebas]Obrigado pela ajuda.
Mas mesmo assim os botões não estaum aparecendo em sequencia . estão aparecendo todo de uma so vez como ja havia acontecido.[/quote]
Que estranho. Experimente aumentar o intervalo entre os milisegundos.
Eu estou usando 500 milisegundos…
e ja usei 750 .sera q eh por isso .?
Tem que aumentar o tempo entre cada uma. 500 ou 750 acho que é muito pouco, vai parecer que eles aparecem todos juntos.
Justamente como disseram acima. Tente colocar, por exemplo, um intervalo de 1500 em cada sleep().
Só pode q está acontecendo alguma coisa com Netbeans q eu uso …
Pois eu segui todas as dicas q vcs me deram e a função sleep não funciona direito.
Provavelmente isso ocorre porque a thread que renderiza os componentes não é a mesma thread que trata os eventos. Assim, mesmo que ocorra os intervalos quando você seta as propriedades dos componentes a renderização vai ocorrer em uma thread separada, que você não controla. Talvez a solução seja criar um componente específico, sobrescrevendo o método paintComponent.