Olá pessoal, estou com uma dúvida com Thread + Sleep.
Criei uma classe Botao que Extends JButton que tem o seguinte método:
public void piscaBotao(final Botao botao){
botao.setIcon(new ImageIcon(imagens+botao.getNome()+"_aceso.jpg"));
botao.setRolloverIcon(new ImageIcon(imagens+botao.getNome()+"_aceso.jpg"));
new Thread(new Runnable(){
public void run(){
try{
Thread.sleep(800);
}catch (Exception e){}
EventQueue.invokeLater(new Runnable(){
public void run(){
botao.setIcon(new ImageIcon(imagens+botao.getNome()+"_apagado.jpg"));
botao.setRolloverIcon(new ImageIcon(imagens+botao.getNome()+"_marcado.jpg"));
}
});
}
}).start();
}
E na classe que monta a tela de jogo tenho os métodos:
public void setStatusBotoes(Boolean status){
azul.setStatus(status);
amarelo.setStatus(status);
verde.setStatus(status);
vermelho.setStatus(status);
laranja.setStatus(status);
violeta.setStatus(status);
}
e quando eu clico no botão laranja por exemplo:
...
laranja.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
if (laranja.getStatus()){
setStatusBotoes(false);
laranja.piscaBotao(laranja);
setStatusBotoes(true);
}
}
}
);
...
O problema é ele não está fazendo o Sleep.
Antes eu tinha colocado o método piscaBotao dentro de quando ele clicasse no laranja (nesse caso o Sleep funciona perfeito), porém algumas vezes eu preciso piscar o botão sem clicar nele…
Alguém poderia me ajudar?