Gnt, estou programando uma janela para cadastro de pessoas. A janela principal está em JFrame e, ao clicar no botão “Criar Funcionário”, eu estanciei uma classe para abrir um JDialog e em seguida ative o jframe.setEnable(). Até aí tudo bem. Só que após criar o funcionário, usei o dispose() no JDialog mas não consegui reativar o JFrame inicial. Como eu faço para reativa-la?
Se eu entendi direito, você quer que se o JDialog estiver aberto, não seja possível interagir com o JFrame… Nesse caso não seria melhor usar o JDialog como modal?
Aí não seria necessário lidar com enables etc
1 curtida
Tira esse setEnabled() e deixa o jDialog.setModal(true).
1 curtida
Deu certo, mas existe 2 problemas:
- Ao criar um novo funcionário e fechar a janela JDialog, a tela de JFrame não é atualiza. Como eu faço para ela iniciar um método depois de eu fechar o JDialog?
- continuo permitindo que o cliente acesse a tela JFrame mesmo com o JDialog aberta. Eu gostaria q ela estivesse bloqueada para ação caso a janela JDialog esteja aberta.
O meu método na JFrame que chama a JDialog é este:
public void cadastrarLocal () throws ClassNotFoundException, SQLException {
TelaCriarLocal tela = new TelaCriarLocal(null, true);
tela.setLocationRelativeTo(null);
tela.setVisible(true);
tela.setModal(true);
O método no JDialog que finaliza o cadastro é:
public void cadastrarLocal() throws ClassNotFoundException {
sql = "Insert into localidades(locais) values(?)";
try {
pst = con.prepareStatement(sql);
pst.setString(1, txtLocal.getText());
pst.execute();
dispose();
} catch (SQLException error) {
JOptionPane.showMessageDialog(null, "Erro ao tentar criar o local\n" + error.getMessage().toLowerCase());
}
}