JOptionPane

Pessoal

Tenho um JOptionPane.showInputDialog que é o seguinte: Quando digito 2 datas de um periodo e nesse periodo ele encontra os dados sai tudo funcionando bem, aparece o relatório blz. Mas quando ele não encontra o periodo de datas no relatório ou cancela-se a operação do JOptionPane.showInputDialog ele me traz um erro postado abaixo. Já pesquisei no Guj no Javafree e em outros sites mas não encontrei nenhuma resposta para esse caso com duas datas ou um periodo.
Como faço para sair do metodo sem dar esse erro. Preciso da ajuda de vcs. Grato.

1. Trecho do codigo com o JOptionPane.showInputDialog.
        try {
            java.sql.Connection con = jdbc.ConnectionFactory.getConnection(
                    "jdbc:postgresql://localhost:5432/Labo",
                    "postgres",
                    "admin9090");
  
        DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");  
// Parece que o parse não aceita o cancelamento ou um resultado nulo.
// Essas variaveis datini e datfim estão inicializadas como Date no inicio do programa.
// Quando clico na linha de erro jIFContasPagar.java:571 o cursor fica na variavel datini.
            try {
                datini = (Date)formatter.parse(JOptionPane.showInputDialog(null, "Data inicial: "));
                if(datini==null){
                    System.out.println("Cancelou!"); 
                    dispose();  
                    return;
                }
            } catch (ParseException ex) {
                Logger.getLogger(jIFContasPagar.class.getName()).log(Level.SEVERE, null, ex);
            }
            try {
                datfim = (Date)formatter.parse(JOptionPane.showInputDialog(null, "Data final: "));
                if(datfim==null){
                    System.out.println("Cancelou!"); 
                    dispose();  
                    return;
                }
            } catch (ParseException ex) {
                Logger.getLogger(jIFContasPagar.class.getName()).log(Level.SEVERE, null, ex);
            }

2. O Erro do java.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1380)
	at java.text.DateFormat.parse(DateFormat.java:355)
	at fontes.Cadastros.jIFContasPagar.jBImprimirNFActionPerformed(jIFContasPagar.java:571)

[quote=nazaocta]Pessoal

Tenho um JOptionPane.showInputDialog que é o seguinte: Quando digito 2 datas de um periodo e nesse periodo ele encontra os dados sai tudo funcionando bem, aparece o relatório blz. Mas quando ele não encontra o periodo de datas no relatório ou cancela-se a operação do JOptionPane.showInputDialog ele me traz um erro postado abaixo. Já pesquisei no Guj no Javafree e em outros sites mas não encontrei nenhuma resposta para esse caso com duas datas ou um periodo.
Como faço para sair do metodo sem dar esse erro. Preciso da ajuda de vcs. Grato.

1. Trecho do codigo com o JOptionPane.showInputDialog.
        try {
            java.sql.Connection con = jdbc.ConnectionFactory.getConnection(
                    "jdbc:postgresql://localhost:5432/Labo",
                    "postgres",
                    "admin9090");
  
        DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");  
// Parece que o parse não aceita o cancelamento ou um resultado nulo.
// Essas variaveis datini e datfim estão inicializadas como Date no inicio do programa.
// Quando clico na linha de erro jIFContasPagar.java:571 o cursor fica na variavel datini.
            try {
                datini = (Date)formatter.parse(JOptionPane.showInputDialog(null, "Data inicial: "));
                if(datini==null){
                    System.out.println("Cancelou!"); 
                    dispose();  
                    return;
                }
            } catch (ParseException ex) {
                Logger.getLogger(jIFContasPagar.class.getName()).log(Level.SEVERE, null, ex);
            }
            try {
                datfim = (Date)formatter.parse(JOptionPane.showInputDialog(null, "Data final: "));
                if(datfim==null){
                    System.out.println("Cancelou!"); 
                    dispose();  
                    return;
                }
            } catch (ParseException ex) {
                Logger.getLogger(jIFContasPagar.class.getName()).log(Level.SEVERE, null, ex);
            }

2. O Erro do java.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1380)
	at java.text.DateFormat.parse(DateFormat.java:355)
	at fontes.Cadastros.jIFContasPagar.jBImprimirNFActionPerformed(jIFContasPagar.java:571)

[/quote]

está dando erro nesta linha

datini = (Date)formatter.parse(JOptionPane.showInputDialog(null, "Data inicial: "));  

eu resolveria assim…

String data = JOptionPane.showInputDialog(null, "Data inicial: ");
transformaData(data);

e criaria o metodo …

public Date transformaData(String data) { SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy kk:hh:ss"); try { return formatador.parse(data); } catch(ParseException ex) { throw new RuntimeException(ex); } }

algo assim… mais ou menos…

darklordkamui

Muito obrigado, fiz como vc orientou e já está resolvido o problema.

Obrigado pessoal já está resolvido.