JTextField retornando valores

2 respostas
rick_gallagher

Ola pessoal,

Estou com um problema no meu modulo de relatórios, eu tenho um JOptionPane onde eu escolho o que eu quero consultar juntamente com dois JTextFields que são “data inicial” e “data final” e o JButton “Pesquisar”. O resultado dessa consulta é mostrada em um JTable.

Tudo esta funcionando perfeitamente, só que quando eu seleciono a opção no meu JOptionPane e adiciono “data inicial” e “data final” a pesquisa vai numa boa, agora se eu selecionar outra opção no meu JOptionPane e depois dar dois cliques no meu JTextField “data inicial” o outro JTextField “data final” se auto-completa com o valor que eu tinha passado na primeira tentativa e o mesmo ocorre se eu der um duplo clique no segundo JTextField, ele auto completa o primeiro.

Espero contar com a ajudinha de vcs.

Vai ai trechos do meu codigo:

// meu JOptionPane "opcao"
 private void opcaoActionPerformed(java.awt.event.ActionEvent evt) {                                      

   //converte em opção selecionada em String      
   String S= (String) opcao.getSelectedItem();     
      
        try {
   
            //Limpa JTable e textfields
            DefaultTableModel dtm =(DefaultTableModel) table.getModel(); 
            dtm.setNumRows(0);
            datainicial.setText(null);
            datafinal.setText(null);     
        
            if(opcao.getSelectedItem() == "Classificação" || opcao.getSelectedItem() == "Rodadas"){
                pesquisar.setEnabled(true);
                table.setEnabled(true);
                datainicial.setEditable(true);
                datafinal.setEditable(true);
            }
   
            if(opcao.getSelectedItem() == "Torneios"){
                pesquisar.setEnabled(false);
                table.setEnabled(false);
                datainicial.setEditable(false);
                datafinal.setEditable(false);
            }
           
        } catch (HeadlessException ex) {
            ex.printStackTrace();
        } 
    }     

//JButton "pesquisar" acionado
 private void pesquisarMousePressed(java.awt.event.MouseEvent evt) {                                       
// TODO adicione seu código de manipulação aqui:
        if(pesquisar.isEnabled()){    
        
        try{
                
             javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)table.getModel();
             int linhas = table.getRowCount();   
             if(linhas > 0){          
                  for(int i = linhas-1; i >= 0; --i){
                   dtm.removeRow(i);   
                }
             }
             
            //Retorna ResultSet da DAO
            result = dao.ConsultarTorneios(conversorDatas.converterData(datainicial.getText()), conversorDatas.converterData(datafinal.getText()));
             
             if(this.datainicial.getText().equals("  /  /    ")){
                    JOptionPane.showMessageDialog(this,"Informe a Data Inicial");
                    }
                else  if(this.datafinal.getText().equals("  /  /    ")){ 
                        JOptionPane.showMessageDialog(this,"Informe a Data Final");
                        } 
            
            while(result.next()){
                dtm.addRow(new Object[]{result.getString("TOR_idTorneio"),result.getString("TOR_nome"),result.getString("TOR_data_inicial"),result.getString("TOR_data_fim"),result.getString("ROD_idRodada"),result.getString("ROD_status"),result.getString("TOR_arbitro") });
            };
            if (table.getRowCount()==0){
             JOptionPane.showMessageDialog(this,"Nenhum resultado foi encontrado","Aviso!",JOptionPane.INFORMATION_MESSAGE);
           }         
            
        }catch(Exception e){
            JOptionPane.showMessageDialog(this,e);     
        } 
      }

2 Respostas

Ironlynx

Bem-Vindo ao GUJ!
Talvez vc tenha que limpar os fields no seu mousepressed, eu não tô entendendo(dá um desconto que eu já tôdormindo de pé mesmo…rrsrs), vc chama o pesquisar no JButton, usando o mouse event?Se eu usar o teclado ba-bau?E não compare Strings com o ==, isso serve para referências, use o metodo equals.Vc tá fechando o seu ResultSet, não tá?

rick_gallagher
Ironlynx:
só que quando eu seleciono a opção no meu JOptionPane e adiciono "data inicial" e "data final" a pesquisa vai numa boa, agora se eu selecionar outra opção no meu JOptionPane e depois dar dois cliques no meu JTextField "data inicial" o outro JTextField "data final" se auto-completa com o valor que eu tinha passado na primeira tentativa e o mesmo ocorre se eu der um duplo clique no segundo JTextField, ele auto completa o primeiro.
Bem-Vindo ao GUJ! Talvez vc tenha que limpar os fields no seu mousepressed, eu não tô entendendo(dá um desconto que eu já tôdormindo de pé mesmo..rrsrs), vc chama o pesquisar no JButton, usando o mouse event?Se eu usar o teclado ba-bau?E não compare Strings com o ==, isso serve para referências, use o metodo equals.Vc tá fechando o seu ResultSet, não tá?

Ironlynx

Valeu pelos toques do "equals()" esse topico já pode ser fechado como resolvido, o que estava acontecendo era o seguinte, no meu "opcaoActionPerformed" eu tava passando inicialmente "MeuTextField.getText(null);" só que não era suficiente, eu tinha que limpar o valor dentro dele quando eu trocasse de opção. Eu clicava dentro do TextField e ele me retornava um valor então eu fiz isso dentro do meu código (somente o trecho que mudou):

private void opcaoActionPerformed(java.awt.event.ActionEvent evt) {                                      

//somente a parte que mudou no meu código, inicio do try       
        try {
            //Limpa JTable e textfields
            DefaultTableModel dtm =(DefaultTableModel) table.getModel(); 
            dtm.setNumRows(0);
            datainicial.setText(null);
            datainicial.setValue("");
            datafinal.setText(null);     
            datafinal.setValue("");

Desta forma, ao clicar no TextField ele não retornará mais nenhum "Value".

Criado 20 de novembro de 2007
Ultima resposta 20 de nov. de 2007
Respostas 2
Participantes 2