Duplicação de aplicação

3 respostas
L

bom dia à todos…

Sou iniciante em java e estou com um pequeno probleminha:

Estou fazendo uma aplicação para testar a inserção de dados no Access via ODBC…
Está rodando normalmente, só que quando eu clico no botão que insere no banco, os registros são inseridos e abre outra aplicação igualzinha, mantendo a anterior…
Qual o problema? Segue o código abaixo…

import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.<em>;

import java.sql.</em>;

import java.lang.*;
public class Inclusao extends JFrame{


static JTextField txtnome, txtendereco, txtcidade;
private JLabel  label1, label2, label3;
private JButton insere, a;

private final static String driver="sun.jdbc.odbc.JdbcOdbcDriver";
private final static String url="jdbc:odbc:Agenda";
private final static String username="";
private final static String password="";
private Connection con;
private Statement stmt;
private ResultSet rs;
public String pegatexto;
public String pegatexto1;
public String pegatexto2;
public Inclusao()
{
     super("Inserindo dados via ODBC");

       Container c=getContentPane();
       c.setLayout(new GridLayout(4,4));

       label1=new JLabel("Nome:",SwingConstants.LEFT);
       label2=new JLabel("Endereço:",SwingConstants.LEFT);
       label3=new JLabel("Cidade:",SwingConstants.LEFT);

       txtnome=new JTextField(20);
       txtendereco=new JTextField(20);
       txtcidade=new JTextField(20);

       Icon img=new ImageIcon("img.gif");
       Icon img1=new ImageIcon("marba.gif");

       insere=new JButton("Inserir",img);
       insere.setHorizontalTextPosition(SwingConstants.RIGHT);

       a=new JButton("Pesquisar",img1);
       a.setHorizontalTextPosition(SwingConstants.RIGHT);
       a.setToolTipText("Pesquisa Registros no Banco");

       c.add(label1);
       c.add(txtnome);

       c.add(label2);
       c.add(txtendereco);

       c.add(label3);
       c.add(txtcidade);

       c.add(insere);
       c.add(a);


       Tratamento1 tratar1=new Tratamento1();
       insere.addActionListener(tratar1);


       Tratamento tratar=new Tratamento();
       a.addActionListener(tratar);



       setSize(300,100);
       show();
}


public void AbreBanco()
{
       try
       {
          Class.forName( driver );
          con= DriverManager.getConnection(url, username, password);
          stmt=con.createStatement();
          System.out.println("Conexao estabelecida com sucesso!");
          System.out.println("");
       }


       catch(ClassNotFoundException e)
       {
          System.out.println("Erro ao carregar JDBC/ODBC driver." + e);
          System.exit(1);
       }

       catch(SQLException e)
       {
          System.out.println("Nao foi possivel estasbelecer conexao!" +e);
          System.exit(1);
       }

 }


 public void gravar(String pegatexto, String pegatexto1, String pegatexto2)
 {

     pegatexto=pegatexto;
     pegatexto1=pegatexto1;
     pegatexto2=pegatexto2;
     String query="INSERT INTO Agenda(nome,endereco,cidade) values('"+pegatexto+"','"+pegatexto1+"','"+pegatexto2+"')";

    try
    {
       stmt.executeUpdate(query);
     }

     catch(SQLException e)

     {
     System.out.println("Erro ao inserir dados" +e);
     }

   }





public class Tratamento implements ActionListener
{
        public void actionPerformed(ActionEvent e)
        {
           txtnome.setText("Teste de Botão");
           txtendereco.setText("Teste 2");
           txtcidade.setText("jjjjjj");


        }
 }

public class Tratamento1 implements ActionListener
{
       public void actionPerformed(ActionEvent e)
        {
               String pegatexto=txtnome.getText();
               String pegatexto1=txtendereco.getText();
               String pegatexto2=txtcidade.getText();
               Inclusao abrir=new Inclusao();
               abrir.AbreBanco();
               abrir.gravar(pegatexto, pegatexto1, pegatexto2);



        }
}



public static void main(String args[]){

  Inclusao app=new Inclusao();
  app.addWindowListener( new WindowAdapter()

{
         public void windowClosing( WindowEvent e)
{
 System.exit(1);
}

 });

}

Desde já agradeço…

3 Respostas

N

Essa é a classe que trata os eventos do seu botão Inserir

public class Tratamento1 implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String pegatexto=txtnome.getText();

String pegatexto1=txtendereco.getText();

String pegatexto2=txtcidade.getText();

Inclusao abrir=new Inclusao();  // aqui vc chama o método principal de sua classe Inclusao, ou seja vc chama outra tela igual a que vc abriuabrir.AbreBanco();

abrir.gravar(pegatexto, pegatexto1, pegatexto2);

}

}

Coloque este código dentro da classe Inclusao:

//DNeo

Insere.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

String pegatexto=txtnome.getText();

String pegatexto1=txtendereco.getText();

String pegatexto2=txtcidade.getText();

AbreBanco();

gravar(pegatexto, pegatexto1, pegatexto2);

} //fim do actionPerformed

}// fim ActionListener

); //fim do addActionListener do botão Insere
black_fire

Usem a tag [‘code] [’/code] fica muito mais legível o post. Vejam:

public class SuaClasse {
  public SuaClasse() {
  }
}
N

Foi mal !!!
Não sabia desta tag do fórum.

Valeu, vou postar só deste jeito agora !!!

Criado 10 de outubro de 2003
Ultima resposta 10 de out. de 2003
Respostas 3
Participantes 3