Bom dia, estou revendo um código que fiz, e vi que muitas vezes crio as mesmas funcionalidades em todos os JDialog que crio, para melhorar isso, estou criando um JDialogPadrão, segue codigo:
public class JDialogPadrao extends JDialog {
public JDialogPadrao(java.awt.Frame parent) {
super(parent, true);
super.setIconImage(parent.getIconImage());
inicializarComponentes();
}
private void inicializarComponentes() {
setLocationRelativeTo(null);
adicionarEsq();
}
private void adicionarEsq() {
KeyStroke esc = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(esc, "fecharEsq");
getRootPane().getActionMap().put("fecharEsq", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent ae) {
dispose();
}
});
}
}
Basicamente o foco da duvida é adicionar o comando de fechar ao clicar no esq.
Até ai esta tudo perfeito, mas em algumas telas eu possuo threads que verifico antes de fechar para informar ao usuário que o processamento esta em execução.
if (threadX != null && threadX.isAlive()) {
JOptionPane.showMessageDialog(rootPane, "Aguarde o processamento finalizar para fechar!");
} else {
dispose();
}
Como eu procederia para estas telas que valido se a thread esta em execução antes de fechar?