Erro Exception

Olá,

Poderia me ajudar a identificar o porque do erro:
Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “”

Por enquanto estou tentando imprimir o dado do campo: Número da nota fiscal.

Segue a classe NotaFiscal:

public class NotaFiscal {

private int numeroNotaFiscal;

public NotaFiscal( int numeroNotaFiscal){
    this.numeroNotaFiscal = numeroNotaFiscal;
}

public int getNumeroNotaFiscal(){
    return this.numeroNotaFiscal;
}

public void setNumeroNotaFiscal( int numeroNotaFiscal){
    this.numeroNotaFiscal = numeroNotaFiscal;
}

@Override
public String toString(){
    return String.format("Dados da Nota Fiscal: \n"
                         + "Número da Nota Fisca: %d \n",
                          numeroNotaFiscal);
}

}

Segue o jFrame da janela jFNotaFiscal:

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

    //obtém os dados dos campos de textos.
    int numeroNotaFiscal = Integer.parseInt(txtNumeroNotaFiscal.getText());
    String rua = txtRua.getText();
    String numeroResidencial = txtNumeroResidencial.getText();
    String cidade = txtCidade.getText();
    String estado = txtEstado.getText();
    
    //Obtém os campos de texto Data da Compra e convete string para inteiro.
    int dia = Integer.parseInt(txtDiaCompra.getText());
    int mes = Integer.parseInt(txtMesCompra.getText());
    int ano = Integer.parseInt(txtAnoCompra.getText());
    
    //Criar uma nova NotaFiscal
    NotaFiscal notaFiscal = new NotaFiscal( numeroNotaFiscal);
    
    //criar um novo Endereco
    Endereco endereco = new Endereco( rua, numeroResidencial, cidade, estado);
    
    //Criar uma nova Data
    Data data = new Data( dia, mes, ano );
    
    try{
        
        JOptionPane.showMessageDialog(this, notaFiscal);
        
    } catch( NumberFormatException exc) {
        
        JOptionPane.showMessageDialog(this, "Entre com um valor válido!",
                                            "Erro.", JOptionPane.ERROR_MESSAGE);
    
}

O erro acontece em algum Integer.parseInt quando o parâmetro string é vazia.

Para resolver o problema, o Integer.parseInt teria que ficar dentro do bloco try/catch:

//obtém os dados dos campos de textos.
int numeroNotaFiscal = -1;
try{
  numeroNotaFiscal = Integer.parseInt(txtNumeroNotaFiscal.getText());
} catch( NumberFormatException exc) {
  JOptionPane.showMessageDialog(this, "Entre com um valor válido!", "Erro.", JOptionPane.ERROR_MESSAGE);
  return;
}
String rua = txtRua.getText();