Erro ao Abrir tela no Java: java.lang.NullPointerException

Boa noite a todos, Estou passando por um problema a um certo tempo então decidi pedir ajuda de pessoas mais experientes, Tenho função void chamada carregaTabela, e inicializo essa função junto com a InitComponentes, ao fazer uma ação para abrir um form chamado cadSetores logo tenho o erro descrito no titulo do tópico java.lang.NullPointerException, alguém pode ajudar?

Minha função carregaTabela();

public  void carregaTabela()
{
String[] colunas = new String[] {"CodSetor", "Nome"};
ArrayList setores = new ArrayList();

Connection con = null;
ResultSet rs = null;
PreparedStatement stmt = null;

    try 
    {
    stmt = con.prepareStatement("select * from setor;");

    rs.first();
    
    do
    {
     setores.add(new Object[]
        {
        rs.getInt("codsetor"),
        rs.getString("nome")
        });
    }while(rs.next());
    
    } catch (SQLException Erro) {
        JOptionPane.showMessageDialog(null, "Erro ao listar tabela.\n" + Erro);
    }
    
    ModeloTabela ModeloTbSetores = new ModeloTabela(setores, colunas);
    tbSetores.setModel(ModeloTbSetores);
}

oi @Marcio_Tostes, você não instanciou sua conexão “Connection con”, você inicializou a variável com “null”, logo quando você vai executar “con.prepareStatement(…”, a variável não tem acesso a nenhum objeto.

Desculpa a pergunta, mais como vou instanciar esse método?

Oi, tudo depende do banco que você quer se conectar e existem varias formas.
Basicamente você precisa saber:

  • ip / porta do banco de dados
  • usuário e senha do banco de dados
  • qual database você quer se conectar

Conexão com mysql, o jeito mais simples(não recomendado) é:

        String URL = "jdbc:mysql://IP_SERVIDOR:3306/DATABASE";
	Class.forName("com.mysql.jdbc.Driver");
	Connection con = DriverManager.getConnection(URL,"USUARIO","SENHA");

Links para leitura:
https://www.caelum.com.br/apostila-java-web/bancos-de-dados-e-jdbc/

Links com duvidas semelhantes:
http://respostas.guj.com.br/24638-conectar-banco-de-dados-mysql-ao-java

Rapaz, obrigado pela dica, vou fazer a leitura e tentar resolver o problema. Em breve retorno com informações.

Gente, alterei meu método carregaTabela seguindo uma vídeo aula, porém encontrei outro problema, os dados são multiplicados na tabela.

public void carregaTabela()
{
 DefaultTableModel modelo = (DefaultTableModel) tbSetores.getModel();    

SetorDao dao = new SetorDao();

for(Setor setores: dao.getLista())
{
    modelo.addRow(new Object[]
    {
    setores.getCodSetor(),
    setores.getNome()
    });
}