妻のために小さな患者管理ソフトウェアを作成しています。プログラムは完全に機能していますが、患者データを更新したり登録を除外したりすると問題が発生します。すべての患者を検索するためのフォームがあり (日付、名前などを使用)、希望する患者を選択すると (最後の訪問から)、すべての患者のデータが別のフォームに表示されます。データを更新してこの訪問を除外することはできますが、保存すると、このフォーム (二次) は閉じられます (破棄されます)。しかし、メイン フォーム (検索フォーム) は以前の値を保持しています。セカンダリフォームを閉じた後にメインフォームを更新するにはどうすればよいですか??? ありがとう
編集済み:そのJavaを言うのを忘れました-sry ;)
Edited2: これは、セカンダリ フォームを呼び出すために使用するメソッドです。プロジェクトの作成には Netbeans を使用しました。
private void btn_selecionaActionPerformed(java.awt.event.ActionEvent evt) {
try{
int sel = tabela.getSelectedRow();
if (sel != -1){
String sql = "select * from agendados "
+ "where numag = " + modelo.getValueAt(sel, 5);
con_mnt.executaSQL(sql);
func = new Funcoes();
func.carregaDados(dados, con_mnt.rs);
new CarregarAgendamento(func.getDados()).setVisible(true);
} else{
JOptionPane.showMessageDialog(null, "Selecione algum paciente antes.", " Atenção!!!", JOptionPane.ERROR_MESSAGE);
}
}
catch(SQLException | NumberFormatException e){
JOptionPane.showMessageDialog(null, "Nao existe dados ainda", " Atenção!!!", JOptionPane.ERROR_MESSAGE);
}
}
編集 3: 保存、削除、salvarAgendamento メソッド:
private void btn_salvaActionPerformed(java.awt.event.ActionEvent evt) {
salvarAgendamento();
dispose();
}
private void btn_deleteActionPerformed(java.awt.event.ActionEvent evt) {
if(javax.swing.JOptionPane.showConfirmDialog(null,"Deseja realmente Excluir este Agendamento?","ATENÇÃO ",javax.swing.JOptionPane.YES_NO_OPTION )==0)
{
con_ag = new Firebird(func.fullPath("/db/manutencao.fdb"));
con_ag.removeFDB("agendados", "numag", jt_cod.getText());
Agendados.refresh = 1;
this.dispose();
}
}
public void salvarAgendamento(){
ArrayList<Object> colunas = new ArrayList<>();
ArrayList<Object> valores = new ArrayList<>();
calendario = new Calendario();
if (jcb_motivo.getSelectedIndex() == -1)
{
JOptionPane.showMessageDialog(null, "Faltou o Motivo do Agendamento!");
jcb_motivo.requestFocus();
}
else if (jt_dataAg.getText().equals(""))
{
JOptionPane.showMessageDialog(null, "Faltou a Data do Agendamento!");
jt_dataAg.requestFocus();
}
else if (dados.getStatusAg() == 0)
{
JOptionPane.showMessageDialog(null, "Faltou selecionar o Status do Agendamento!");
jcb_status.requestFocus();
}
else
{
calendario.dataFormatada("dd/mm/yyyy", "yyyy-mm-dd", jt_dataAg.getText());
dados.setDataAg(calendario.getDataFormatada() + " 00:00:00");
colunas.add("statusag");
colunas.add("obs");
valores.add(jt_tel1.getText());
valores.add(jt_tel2.getText());
valores.add(jt_cel.getText());
valores.add(dados.getConvenioNum()); //convnum
valores.add(dados.getDentistaNum()); //dentnum
valores.add(jcb_motivo.getSelectedItem());
valores.add(dados.getDataAg()); //dataag
valores.add(dados.getStatusAg()); //statusag
valores.add(area_obs.getText());
valores.add(jt_cod.getText());
grava(valores);
JOptionPane.showMessageDialog(null, "Agendamento alterado com sucesso!");
dispose();
}
}