Problem converting String to Date

2

I have a project to do and I can not convert String to Date . I want to compare the current date with the date of the query that is in the textField Date , and if the current date is past the marked date, it means that the query has already been performed and thus deleting it from the Database . But I can not compare dates. Here is the code commented on the doubts

 public void PegaData(String dataa) throws ParseException
{
 Date data = new Date(System.currentTimeMillis());
 SimpleDateFormat formatardata = new SimpleDateFormat("dd/MM/yyyy");

 Date dataA =(Date)formatardata.parse(dataa);  //Tentei fazer casting mas nao rolou

 if(dataA.after(data)){
     btConsulta.setEnabled(true);
     System.out.println("data passada");
 }
 else{
       btConsulta.setEnabled(false);
       System.out.println("data no prazo");
      }
 }

returned the exception

  

(Nov 29, 2016 2:56:11 PM proyectojava1.Agenda listaValueChanged   SERIOUS: null   java.text.ParseException: Unparseable date: "- -")

Full Code

public class Agenda extends javax.swing.JFrame {

    ManipulaBanco dado;
    DefaultListModel l;
    String nomeMedico;

    public Agenda() {
        initComponents();
        this.setLocationRelativeTo(null);
        this.setResizable(false);
        dado = new ManipulaBanco();
        Ativacao(false);


    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        txtPaciente = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        btAgendar = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jLabel6 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        txtID = new javax.swing.JTextField();
        jButton4 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        lista = new javax.swing.JList<>();
        txtData = new javax.swing.JFormattedTextField();
        txtNascimento = new javax.swing.JFormattedTextField();
        txtHoras = new javax.swing.JFormattedTextField();
        jLabel5 = new javax.swing.JLabel();
        txtConfirma = new javax.swing.JTextField();
        btConsulta = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Paciente:");

        jLabel2.setText("Data:");

        jLabel3.setText("Horário");

        btAgendar.setText("Agendar");
        btAgendar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAgendarActionPerformed(evt);
            }
        });

        jButton3.setText("Voltar");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jLabel6.setText("Data de Nascimento");

        jLabel4.setText("N°  de Identificação:");

        txtID.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtIDActionPerformed(evt);
            }
        });

        jButton4.setText("Ok");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        lista.addListSelectionListener(new  
          javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent 
             evt) {
                listaValueChanged(evt);
            }
        });
        jScrollPane1.setViewportView(lista);

        try {
            txtData.setFormatterFactory(new 
      javax.swing.text.DefaultFormatterFactory(new 
      javax.swing.text.MaskFormatter("##/##/####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }

        try {
            txtNascimento.setFormatterFactory(new 
       javax.swing.text.DefaultFormatterFactory(new 
       javax.swing.text.MaskFormatter("##/##/####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }

        try {
            txtHoras.setFormatterFactory(new 
         javax.swing.text.DefaultFormatterFactory(new 
         javax.swing.text.MaskFormatter("##:##")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }

        jLabel5.setText("Confirmação");

        txtConfirma.setEditable(false);

        btConsulta.setText("Consulta ja realizada");
        btConsulta.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btConsultaActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new   
      javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(

       layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, 
         layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)

      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(txtPaciente, 
              javax.swing.GroupLayout.PREFERRED_SIZE, 216, 
               javax.swing.GroupLayout.PREFERRED_SIZE)

       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 
       12, Short.MAX_VALUE)
                .addComponent(jScrollPane1, 
        javax.swing.GroupLayout.PREFERRED_SIZE, 105, 
            javax.swing.GroupLayout.PREFERRED_SIZE)

                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addGap(51, 51, 51)
                .addComponent(btAgendar)

     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButton3)
                .addGap(79, 79, 79))
            .addGroup(layout.createSequentialGroup()

  .addGroup(layout.createParallelGroup
     (javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(24, 24, 24)
                        .addComponent(jLabel4)
                        .addGap(18, 18, 18)
                        .addComponent(txtID, 
      javax.swing.GroupLayout.PREFERRED_SIZE, 164, 
         javax.swing.GroupLayout.PREFERRED_SIZE)

      .addPreferredGap(javax.swing.LayoutStyle.
     ComponentPlacement.UNRELATED)
                        .addComponent(jButton4, 
      javax.swing.GroupLayout.PREFERRED_SIZE, 57, 
         javax.swing.GroupLayout.PREFERRED_SIZE))

      .addGroup(layout.createParallelGroup
        (javax.swing.GroupLayout.Alignment.TRAILING)
                        .addComponent(btConsulta)
                        .addGroup(layout.createSequentialGroup()
                            .addGroup(layout.createParallelGroup
         (javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jLabel6)
                                .addGroup(layout.createSequentialGroup()
                                    .addGap(35, 35, 35)
                                    .addGroup(layout.createParallelGroup
             (javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jLabel3)
                                        .addComponent(jLabel2)))
                                .addComponent(jLabel5,  
            javax.swing.GroupLayout.Alignment.TRAILING))
                            .addGap(18, 18, 18)
                            .addGroup(layout.createParallelGroup
           (javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createParallelGroup
             (javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(txtNascimento, 
          javax.swing.GroupLayout.PREFERRED_SIZE, 80,

       javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(txtData, 

javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(txtHoras, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addComponent(txtConfirma, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel4)
                        .addComponent(txtID, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jButton4))
                    .addGap(18, 18, 18)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(txtPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel1))
                            .addGap(18, 18, 18)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel6)
                                .addComponent(txtNascimento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(18, 18, 18)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel2)
                                .addComponent(txtData, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(18, 18, 18)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel3)
                                .addComponent(txtHoras, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(18, 18, 18)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(txtConfirma, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel5)))
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE))

     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18,  
     Short.MAX_VALUE)
                    .addComponent(btConsulta)

     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

     .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE 
     )
                    .addComponent(btAgendar)
                    .addComponent(jButton3))
                .addGap(20, 20, 20))
        );

        pack();
    }// </editor-fold>                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Principal principal = new Principal();
        principal.setVisible(true);
        dispose();
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        nomeMedico = dado.Medicos(txtID.getText());


        if (txtID.getText().equals("") || txtData.getText().equals("")) {
            JOptionPane.showMessageDialog(this, "Por favor Insira o seu número  
        de identificação de médico e a Data");

        } else if (nomeMedico == null) {
            JOptionPane.showMessageDialog(this, "ID Invalido");
        } else {
            JOptionPane.showMessageDialog(this,"Seja Bem vindo Dr."+nomeMedico);
            carregaLista();
            Ativacao(true);
        }

    }                                        

    private void listaValueChanged(javax.swing.event.ListSelectionEvent evt) {                                   

        String[] resultado = dado.consultaPaciente(lista.getSelectedValue());
        txtPaciente.setText(resultado[0]);
        txtNascimento.setText(resultado[1]);
        txtHoras.setText(resultado[2]);
        txtConfirma.setText(resultado[3]);

        boolean confirmacao;

        confirmacao=txtConfirma.getText().equals("Confirmado");

        if(confirmacao)
        {
            btAgendar.setEnabled(false);
            txtData.setEnabled(false);
            try {
                PegaData(txtData.getText().replace("/", "-"));
            } catch (ParseException ex) {
           Logger.getLogger(Agenda.class.getName()).log(Level.SEVERE, null,      

            ex);
            }
        }
        else{
           btAgendar.setEnabled(true);
           txtData.setEnabled(true);
        }

    }                                  

    private void txtIDActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
    }                                     

    private void btAgendarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        dado.agendaDia(txtData.getText(), txtPaciente.getText());
        JOptionPane.showMessageDialog(this, "Data agendada para o paciente: " + 

        txtPaciente.getText());
        limpaCampo();
    }                                         

    private void btConsultaActionPerformed(java.awt.event.ActionEvent evt) {                                           
    if(txtPaciente.getText().equals("")){
    btConsulta.setEnabled(false);
    }
    else{
    btConsulta.setEnabled(true);
    dado.deletaPaciente(txtPaciente.getText());
    JOptionPane.showMessageDialog(this,"Consulta finalizada com sucesso");
    limpaCampo();
    }

    }                                          

    public void limpaCampo() {
        txtPaciente.setText("");
        txtNascimento.setText("");
        txtData.setText("");
        txtHoras.setText("");
    }

    public void carregaLista() {
        nomeMedico = dado.Medicos(txtID.getText());
        l = new DefaultListModel();
        ArrayList<String> usuarios = dado.listarPacientes(nomeMedico);
        for (int i = 0; i < usuarios.size(); i++) {
            l.addElement(usuarios.get(i));
        }
        if(l.isEmpty()){JOptionPane.showMessageDialog(this,"Nenhum paciente no   
       momento");}
        else
        lista.setModel(l);
    }

    public void Ativacao(boolean resposta) {
        txtPaciente.setEnabled(false);
        txtData.setEnabled(resposta);
        txtNascimento.setEnabled(false);
        txtHoras.setEnabled(false);
    }

    public void PegaData(String dataa) throws ParseException
    {
     Date data = new Date(System.currentTimeMillis());
     SimpleDateFormat formatardata = new SimpleDateFormat("dd/MM/yyyy");

     Date dataA =(Date)formatardata.parse(dataa);  

     if(dataA.after(data)){
         btConsulta.setEnabled(true);
         System.out.println("data passada");
     }
     else{
           btConsulta.setEnabled(false);
           System.out.println("data no prazo");
          }
     }
    
asked by anonymous 29.11.2016 / 18:14

2 answers

2

Change the excerpt where you call the PegarData method to PegaData(txtData.getText()); or the date mask within this method to dd-MM-yyyy .

The current formatting mask of your date is dd/MM/yyyy , and you are replacing the bar with stroke, which bursts the exception, since the date does not arrive with the formatting of the mask entered.

If it does not work, the problem may probably be that the value is coming in to be "parseado", judging by the error, it seems that only the mask you applied in the txtData field is coming up (so it displays Unparseable date: " - - " ), with nothing completed.

    
29.11.2016 / 18:34
1

It seems like the parameter dataa of method PegaData(String dataa) not coming with the value you expect. It seems to me that it is a problem before calling the function, ie how you are getting the edit date.

    
29.11.2016 / 18:43