Atualizar dados no fechamento do formulario

7 respostas
syaoran

boa tarde, estou com algumas duvidas no fechamento de um form, o que ocorre é o seguindo, eu clico em um botao ele abre o form eu digito um valor click em outro botao ele salva no banco de dados e fecha o form, voltando para o form principal mas nesse form não atualiza os dados eu preciso abrilo novamente para atualizar

{

String sqlinsert =insert into tipo (nome_tipo) values (’”+

tf_tipo.getText()+"’)";

tipo1 f = new tipo1();                                    [/b]// minha primeira duvida é aqui, nessa linha ele cria um novo objeto não tem como eu usar oq ja esta criado[b]

f.con_tipo.statement.executeUpdate(sqlinsert);

f.con_tipo.resultset = f.con_tipo.statement.executeQuery(select * from tipo order by nome_tipo);

f.con_tipo.resultset.last();

dispose();
}

catch (SQLException erro)

{

JOptionPane.showMessageDialog(null,Erro ao tentar gravar registro+erro);

}

como eu posso atualizar o form principal (esse tipo1 é o form principal)

7 Respostas

G

tem sim cara, usa padrão Singleton dai você vai usar apenas um objeto instanciado sempre =) acho que isso vai resolver pra você, e quando você for postar um codigo poste dentro de code =)

Giovanni_Ritchie

Adicione um WindowFocusListener na sua janela principal, assim sempre que ela ganhar o focus vc chama um método para atualizar os dados…

syaoran

vocês poderiam postar um exemplo :slight_smile:

G

http://www.guj.com.br/posts/list/133252.java#717298

syaoran

não estou conseguindo

public final class tipo1 extends javax.swing.JFrame 
{
    private static tipo1 me = new tipo1(); 
    
    int navegar = 0;
   public conexao con_tipo;
    String ordenacao;
    /** Creates new form tipo1 */
    public tipo1() {
        initComponents();
       con_tipo = new conexao();
       con_tipo.conecta();
       con_tipo.executaSQL("select * from tipo ");
       try
       {
        ...
        public static tipo1 getInstance(){  
          return me;  
       }        
}

aqui o outro form

try 
{
    String sqlinsert ="insert into tipo (nome_tipo) values ('"+
            tf_tipo.getText()+"')";
   // tipo1 f = new tipo1();
    tipo1.getInstance().con_tipo.statement.executeUpdate(sqlinsert);
    tipo1.getInstance().con_tipo.resultset = tipo1.getInstance().con_tipo.statement.executeQuery("select * from tipo order by nome_tipo");
    tipo1.getInstance().con_tipo.resultset.last();
    dispose();
      
}
catch (SQLException erro)
{
JOptionPane.showMessageDialog(null,"Erro ao tentar gravar registro"+erro);
}

onde estou errando

G

juro que eu nem sei que que você ta fazendo… dicas divida seu projeto em 3 camadas model, view e control (MVC) use PreparedStatement em vez de statement, singleton você tem que setar o que você quer que ela guarde, e talvez você possa dar um refresh no form ja que ele não atualiza.

syaoran
estou tentando criar singleton para poder atualizar o con_tipo no fechamento do form
public class tipo1 extends javax.swing.JFrame 
{
    
    int navegar = 0;
    conexao con_tipo;
    String ordenacao;
    /** Creates new form tipo1 */
     tipo1() {
        initComponents();
       con_tipo = new conexao();
       con_tipo.conecta();
       con_tipo.executaSQL("select * from tipo ");
       try
       {
         con_tipo.resultset.first();
         tf_codigo.setText(con_tipo.resultset.getString("cod_tipo"));
          tf_nome.setText(con_tipo.resultset.getString("nome_tipo"));
       }
       catch (SQLException erro)
       {
       JOptionPane.showMessageDialog(null,"Não localizou dados"+erro);
       }
    }
    
     public static tipo1 getInstance(){  
          return tipo1;                            //esta dando erro aqui por quê?
       }
Criado 23 de agosto de 2010
Ultima resposta 24 de ago. de 2010
Respostas 7
Participantes 3