Pessoal, tenho um terminal ligado a um servidor via socket via TCP/IP. Eu gostaria de adicionar no jButton1 deste código um pequeno temporizador de 10 segundos que fica decrescendo e mostrando para o usuário(O timer vai ficar dentro do botão). Se o usuário clicar no botão para reenviar a informação novamente o temporizador pára e tudo bem, caso o usuário esqueça e o temporizador chegue a zero ele sozinho reenvia a informação. Segue o código:
private void confirmarReenvio(){
Icon Icon1 = new ImageIcon("icone_certo.PNG");
Icon Icon2 = new ImageIcon("icone_errado.PNG");
String mensagem = "MENSAGEM";
String titulo = "TÍTULO";
JOptionPane optionPane = new JOptionPane();
optionPane.setMessage(mensagem);
optionPane.setMessageType(JOptionPane.QUESTION_MESSAGE);
JDialog dialog = optionPane.createDialog(this, titulo);
JButton jButton1 = getButton1(dialog, optionPane, "SIM, REENVIE!", Icon1);
JButton jButton2 = getButton2(dialog, optionPane, "NÃO, CANCELE!", Icon2);
optionPane.setOptions(new Object[] { jButton1, jButton2 });
Cursor cursor = dialog.getCursor();
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
dialog.setVisible(true);
}
public JButton getButton1(final JDialog dialog, JOptionPane optionPane, String text, Icon icon) {
JButton button = new JButton(text, icon);
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
// AçÕES
}
};
button.addActionListener(actionListener);
return button;
}
Esse código será utilizado caso a impressora que está em rede apresente problemas na impressão eu possa reenviar os dados. Agradeço alguma ajuda a respeito.
Acho que o caminho seria voce criar uma Thread a parte que inicia o contador
enviando a referencia do botao para ela
assim voce consegue dar um sleep de 1seg e ir atualizando o texto do botao
Dai voce tambem consegue verificar quando chegou a ‘0’ seg ou parar a Thread
Pode ser que tenha uma alternativa melhor.
Exato, estou utilizando a classe Timer(), mas não sei como adicionar um label com o contador dentro do botão e em seguida no JDialog. Agradeço a resposta!