Por que dá erro quando tento exibir um componente de uma tabela

de um BD numa caixa de texto?
Tipo do erro: java.lang.NullPointerException

private void primeiroActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {
        c.rs.first();
        c.executaSQL("select * from ESTADOS");
        
        n.setText(c.rs.getString("NOME_DO_ESTADO"));
        s.setText(c.rs.getString("SIGLA_DO_ESTADO"));
    } catch (SQLException ex) {
        Logger.getLogger(Dado.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(null, "ERRO AO MOSTRAR DADOS!"
                + "\nERRO:  "+ex.getMessage());
    }
}  

Classe de conexão:

package Banco;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class Conectar {

    public Statement stm;//responsável por preparar e realizar pesquisas no banco de dados
    public ResultSet rs;//responsável por amazenar o resultado de uma pesquisa passada para o Statement
    private String driver = "apache_derby_net";//responsável por identificar o serviço de banco de dados
    private String caminho = "jdbc:derby://localhost:1527/Higor";//responsável por setar o local do banco de dados
    private String usuario = "Higor"; 
    private String senha = "deliciacara15";
    public Connection conn; // responsável por realizar a conexão com o banco de dados
    
    public void conexao()
    {//método responsável por realizar a conexão com o banco.
        try {//tentativa inicial
            System.setProperty("jdbc.Drivers", driver);//seta a propriedade do driver de conexão
            conn = DriverManager.getConnection(caminho, usuario, senha);//realiza a conexão com o banco de dados.
            
            JOptionPane.showMessageDialog(null, "Conectado com sucesso.");
        } catch (SQLException ex) {//se não der certo... \/
            JOptionPane.showMessageDialog(null, "Erro de conexão."
            +"\nErro:"+ex.getMessage());
        }
    }
    
    public void executaSQL(String sql)
    {
        try {
            stm = conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,
                    rs.CONCUR_READ_ONLY);
            rs = stm.executeQuery(sql);
        } catch (SQLException ex) {
            Logger.getLogger(Conectar.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void desconecta()
    {//método para fechar a conexão com o banco de dados
        try {
            conn.close();//fecha a conexao
            JOptionPane.showMessageDialog(null, "Conexão fechada com sucesso!");
        } catch (SQLException ex) {
            Logger.getLogger(Conectar.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "Erro ao fechar a conexão."
                    + "\nErro:"+ex.getMessage());
        }
    }
}

OBS.: A TABELA E AS COLUNAS ESTÃO FEITAS!

manda todo o Log do erro pf.