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
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.
olá, por gentileza poste o seu código assim fica mais fácil de poder lhe ajudar.
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”
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.
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));
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!
Abner_Rodigues e Starocki, verdade, outra mancada, já alterei e desmarquei o static e rodou. Valeu.