JButton botão de pesquisar

4 respostas
X

esta e minha classe de cidade

package cadastro;
import java.sql.SQLException;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import oracle.toplink.essentials.internal.expressions.SQLInsertStatement;
import ultilitario.conexao;
import javax.swing.text.MaskFormatter;

/**
 *
 * @author  Administrador
 */
public class cidade extends javax.swing.JFrame {
    int navega = 0;
    MaskFormatter formatocep;
    conexao con_cidade;
    
    /** Creates new form cidade */
    public cidade() {
        initComponents();
        
        con_cidade = new conexao();
        con_cidade.conecta();
        con_cidade.executeSQL("select * FROM cidade");
         
        try
       {
        con_cidade.resultset.first();   
        mostrar_dados();
      }
        catch(SQLException erro)
        {
           JOptionPane.showMessageDialog(null,"Não localizou dados"+erro); 
        }
        preencher_table();
}

 private void pesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                          
    try
    {
      con_cidade.resultset.first();
      String igual = "n";
      int tamanho_pesquisa = pesquisar.getText().length();
      while (igual == "n")
      {
          String pesquisado = con_cidade.resultset.getString("nome").substring(0,(tamanho_pesquisa));
          
          if (pesquisado.equals(pesquisar.getText()))
          {
              igual = "n";
          }
          
          else
              con_cidade.resultset.next();
      }  
      codigo.setText(con_cidade.resultset.getString("codigo"));
      mostrar_dados();
    }
    catch(Exception erro)
    {
       JOptionPane.showMessageDialog(null,"Não conseguiu localizar dados"+erro); 
    }
    }                                         

    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try
    {
        String sql = "select * from cidade Where codigo = "+codigo.getText();
        con_cidade.executeSQL(sql);
        con_cidade.resultset.first();
        String nome = "Deletar a cidade ? "+con_cidade.resultset.getString("nome")+" ? ";
        int opção_escolhida = JOptionPane.showConfirmDialog(null,nome,"Exclução",JOptionPane.YES_NO_OPTION);
        if (opção_escolhida == JOptionPane.YES_OPTION)
        {
            sql = "DELETE FROM cidade Where codigo = "+codigo.getText();
            int conseguiu_excluir = con_cidade.statement.executeUpdate(sql);
            if (conseguiu_excluir == 1)
            {
              JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");
              con_cidade.executeSQL(sql);
              con_cidade.resultset.first();
              mostrar_dados();
            }   
        }
        else
        return;
    }   
    catch(SQLException erro)
    {
       JOptionPane.showMessageDialog(null,"erro ao tentar excluir um registro"+erro); 
    }        
    }                                        

    private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try
    {
        String sql ="UPDATE cidade SET nome ='"+nome.getText()+"',"+
                "cep ='"+cep.getText()+"',"+
                "uf = '"+uf.getSelectedItem()+"' where codigo = "+codigo.getText();
        con_cidade.statement.executeUpdate(sql);
        JOptionPane.showMessageDialog(null,"Alteração realizada com Sucesso! ");
        
        con_cidade.executeSQL("Select * from cidade");
        con_cidade.resultset.next();
        mostrar_dados();
    }
    catch(SQLException erro)
    {
        JOptionPane.showMessageDialog(null,"Nâo foi Possivel fazer Alteração"+erro);
    }
    }                                        

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    codigo.setText("");
    nome.setText("");
    cep.setText("");
    uf.setSelectedItem("AC");
    nome.requestFocus();
    codigo.setEditable(false);
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try
    {
        con_cidade.resultset.previous();
        mostrar_dados();
        navega = 1;
    }
    catch(SQLException erro)
    {
     JOptionPane.showMessageDialog(null,"Não localizou dados"+erro);
    }
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {
        con_cidade.resultset.last();
        mostrar_dados();
        }
    catch(SQLException erro)
    {
    JOptionPane.showMessageDialog(null,"Não localizou dados"+erro);
    }
    }                                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     try {
            con_cidade.resultset.first();
            mostrar_dados();
        } catch(SQLException erro) {
            JOptionPane.showMessageDialog(null,"Não localizou dados"+erro);
        }
    }                                        

    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try
    {
        String sqlinsert ="insert into cidade (nome,cep,uf) values ('"+
        nome.getText()+"','"+
        cep.getText()+"','"+
        uf.getSelectedItem()+"')";
        con_cidade.statement.executeUpdate(sqlinsert);
        JOptionPane.showMessageDialog(null,"Gravação realizado com sucesso!");
        
        con_cidade.executeSQL("Select * from cidade");
        con_cidade.resultset.first();
        mostrar_dados();
       }
    catch(SQLException erro)
    {
        JOptionPane.showMessageDialog(null,"Erro a tentar Gravar o Registros"+erro);
    }
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            con_cidade.resultset.next();
            mostrar_dados();
            navega = 2;
        } catch(SQLException erro) {
            JOptionPane.showMessageDialog(null,"Não localizou dados"+erro);
        }
    }                                        
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new cidade().setVisible(true);
            }
        });
    }

 // Declaração de variáveis - não modifique                     
    private javax.swing.JFormattedTextField cep;
    private javax.swing.JTextField codigo;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JButton jButton7;
    private javax.swing.JButton jButton8;
    private javax.swing.JButton jButton9;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextField nome;
    private javax.swing.JTextField pesquisa;
    private javax.swing.JButton pesquisar;
    private javax.swing.JComboBox uf;
    // Fim da declaração de variáveis   

public void mostrar_dados()
    {
    try
       {
        codigo.setText(con_cidade.resultset.getString("codigo"));
        nome.setText(con_cidade.resultset.getString("nome"));
        uf.setSelectedItem(con_cidade.resultset.getString("uf"));
        cep.setText(con_cidade.resultset.getString("cep"));
      }
        catch(SQLException erro)
        {
            if (navega == 1)
           JOptionPane.showMessageDialog(null,"Saiba que você esta no primeiro registro");
            else if (navega == 2)
           JOptionPane.showMessageDialog(null,"Saiba que você esta no ultimo registro");     
            else     
           JOptionPane.showMessageDialog(null,"Não localizou dados"+erro);
           navega = 0;
        }    
    } 
   
    public void preencher_table()
    {
        jTable1.getColumnModel().getColumn(0).setPreferredWidth(5);
        jTable1.getColumnModel().getColumn(1).setPreferredWidth(300);
        jTable1.getColumnModel().getColumn(2).setPreferredWidth(5);
        jTable1.getColumnModel().getColumn(3).setPreferredWidth(5);
        
        DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
        modelo.setNumRows(0);
        
        try
        {
            while (con_cidade.resultset.next())
            modelo.addRow(new Object [] 
            {con_cidade.resultset.getString("codigo")
            ,con_cidade.resultset.getString("nome")
            ,con_cidade.resultset.getString("uf")
            ,con_cidade.resultset.getString("cep")});
            
        }
        
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Erro ao lista"+erro);
        }
    }
}

e esta e minha classse de conexão com o banco de dados que si chama conexao

package ultilitario;
import javax.swing.*;
import java.sql.*;
import oracle.toplink.essentials.queryframework.ResultSetMappingQuery;

public class conexao
{
    final private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    final private String url = "jdbc:odbc:estoque";
    final private String usuario = "";
    final private String senha = "";
    private Connection conexao;
    public Statement statement;
    public ResultSet resultset;

    public boolean next;
    
    public boolean conecta()
    { 
    boolean result = true;
    try
    {
        Class.forName(driver);
        conexao = DriverManager.getConnection(url, usuario, senha);
        JOptionPane.showMessageDialog(null,"Conectou");
    }
    
    catch(ClassNotFoundException Driver)
    {
        JOptionPane.showMessageDialog(null,"Driver não localizado: "+Driver);
        result = false;
    }
    catch(SQLException Fonte)
    {
        JOptionPane.showMessageDialog(null,"Deu erro na conexão "+
                "com fonte e dados: "+Fonte);
        result = false;
    }
       return result;
}   

public void desconecta()
{
    boolean result = true;
    try
    {
        conexao.close();
        JOptionPane.showMessageDialog(null,"banco fecahdo");
    }
    
    catch(SQLException fecha)
    {
        JOptionPane.showMessageDialog(null,"Não foi possivel "+
                "fechar o banco de dados: "+fecha);
    }
}
public void executeSQL(String sql)
{
    try
    {
        statement = conexao.createStatement(
                ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
        resultset = statement.executeQuery(sql);
    }
    catch(SQLException sqlex)
    {
        JOptionPane.showMessageDialog(null,"Não foi possivel "+
                "executar o camando sql,"+sqlex+", o sql passado foi "+sql);
    }
}
}

eu crie um botão chamado pesquisar e fiz da seguinte forma

private void pesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                          
    try
    {
      con_cidade.resultset.first();
      String igual = "n";
      int tamanho_pesquisa = pesquisar.getText().length();
      while (igual == "n")
      {
          String pesquisado = con_cidade.resultset.getString("nome").substring(0,(tamanho_pesquisa));
          
          if (pesquisado.equals(pesquisar.getText()))
          {
              igual = "n";
          }
          
          else
              con_cidade.resultset.next();
      }  
      codigo.setText(con_cidade.resultset.getString("codigo"));
      mostrar_dados();
    }
    catch(Exception erro)
    {
       JOptionPane.showMessageDialog(null,"Não conseguiu localizar dados"+erro); 
    }

quando eu escrevo o nome da cidade para pesquisar e clico no botão para pesquisar a cidade

que e o JButton apareci esta mensagem

Não conseguiu localiza dadosjava.lang.StringIndexOutOfBoundsExecption:String index out of range: 9

o programa que estou usando e netbeans 5.5
e o banco de dado e access 2003

si alguem puder ajuda aonde eu estou errando si esta faltando alguma coisa que eu nao fiz

agredeço muito quem puder ajuda
que sou nova nesta area do java

muito obrigado quem puder ajuda

4 Respostas

ivo_costa

Eu não tive corajem de ver todas as classes vi só a última, com o evento do botão:

*Não use o operador “==” para comparar strings use o método “equals” ou “equalsIgnoreCase”
*Ao invés de usar uma string para deixar o laço no loop use um boolean.
*Vc tem certeza que na linha 13 é para receber “n”? Já que ele achou um registro o certo não seria sair do loop?

Ficaria mais ou menos assim:

private void pesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                          
    try
    {
      con_cidade.resultset.first();
      boolean igual = true;
      int tamanho_pesquisa = pesquisar.getText().length();
      while (igual)
      {
          String pesquisado = con_cidade.resultset.getString("nome").substring(0,(tamanho_pesquisa));
          
          if (pesquisado.equals(pesquisar.getText()))
          {
              igual = false;
          }
          
          else
              con_cidade.resultset.next();
      }  
      codigo.setText(con_cidade.resultset.getString("codigo"));
      mostrar_dados();
    }
    catch(Exception erro)
    {
       JOptionPane.showMessageDialog(null,"Não conseguiu localizar dados"+erro); 
    }

Se não for isso coloque a linha em que o erro está ocorrendo, no catch coloque:

erro.printStackTrace();
X

não deu certo

mais pediu para colocar

isto no catch

erro.printStackTrace();

eu vou colocar assim

catch(Exception erro) { JOptionPane.showMessageDialog(null,"Não conseguiu localizar dados"+erro); erro.printStackTrace(); }

ivo_costa

o printStackTrace() é pra aparecer a pilha de erros no console, assim fica mais fácil identificar onde está o problema. Coloque isso no cath e poste aqui a stack de erros.

X

init: deps-jar: Compiling 1 source file to C:\Documents and Settings\suporte\Desktop\estoque\build\classes compile-single: run-single: java.lang.StringIndexOutOfBoundsException: String index out of range: 9 at java.lang.String.substring(String.java:1935) at cadastro.cidade.pesquisarActionPerformed(cidade.java:415) at cadastro.cidade.access$000(cidade.java:19) at cadastro.cidade$1.actionPerformed(cidade.java:165) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6038) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

apareceu estes erros ai

Criado 28 de maio de 2008
Ultima resposta 28 de mai. de 2008
Respostas 4
Participantes 2