#RESOLVIDO#Tornar um pacote privado - JAVA Netbeans

Boa tarde,

Estou tentando mostrar o nome do usuário na tela principal, mas quando seto a variável na tela de login,
ela pede para Tornar a variável privada. Alguém pode me dizer onde estou errando?

Obrigado

Em primeiro lugar, está errando por postar uma imagem e não o código.

1 curtida

olá, por gentileza poste o seu código assim fica mais fácil de poder lhe ajudar.

1 curtida

Isso na verdade é uma má tradução do NetBeans, você precisar deixar o componente público.

Clica no componente, botão direito, personalizar código, aí no rodapé da janela que abriu, vai ter algo como se fosse um jComboBox escrito “private”, vc clica nela e coloca em “public”

1 curtida

Bom Dia, desculpa por ter enviado a imagem, segue o código:

public void logar() {

    String sql = "select * from tbl_usuarios where usuario=? and senha=?";
    try {
        pst = conexao.prepareStatement(sql);
        pst.setString(1, txtLogin.getText());
        pst.setString(2, txtSenha.getText());

        rs = pst.executeQuery();

        if (rs.next()) {

            String perfil = rs.getString(6);

            if (perfil.equals("admin")) {
                TelaPrincipalCi principal = new TelaPrincipalCi();
                principal.setVisible(true);
                TelaPrincipalCi.lblUsuarioLog.setText(rs.getString(2));
                this.dispose();
                conexao.close();

            } else {
                TelaPrincipalCi principal = new TelaPrincipalCi();
                principal.setVisible(true);
                this.dispose();
            }

        } else {
            JOptionPane.showMessageDialog(null, "Usuário e/ou senha inválido(s)");
        }

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }

}

Bom dia, não consegui localizar o componente que você falou para clicar com o botão direito. Consegue me passar mais algum detalhe para ver se consigo identificar? Obrigado

lblUsuarioLog, ele até está selecionado ele na imagem que você postou. :wink:

1 curtida

Obrigado, localizei, alterando para public, ele informa que a variável lblUsuarioLog não pode referenciar com contexto estático.

É porque você está tentando acessar o atributo lblUsuarioLog a partir da classe TelaPrincipalCi, quando na verdade deveria acessar a partir do objeto principal.

Staroski, acho que falhei na hora de criar a classe principal, cometi alguma gaf, mas consegui resolver com ajuda de vcs. Ao alterar para public faltou marcar o termo STATIC na frente do public.
obrigado a todos.

Você não precisa colocar o static, na hora de chamar a variável vc faz assim:

Frame2 frame = new Frame2();
frame.lblUsuarioLog.setText(rs.getString(2));
1 curtida

Está errado, não faz sentido esse componente ser estático.
Você criou um objeto da classe TelaPrincipalCi e chamou ele de principal.
Mas na hora de acessar o atributo lblUsuarioLog você digitou o nome da classe ao invés do nome do objeto.
Tem que digitar o nome do objeto!

2 curtidas

Abner_Rodigues e Starocki, verdade, outra mancada, já alterei e desmarquei o static e rodou. Valeu.