o problema eh o seguinte pessoal, implementei essa classe para um sistema de login de um trabalho na faculdade..
Quando a letra "l" for igual a 0 quer dizer que o login nao foi efetuado.. e quando por 1 quer dizer quer dizer que o login foi feito..
mas o problema é o seguinte eu chama o metodo "mLogin" de uma outra classe, e passo por parametro o valor 1 para dizer q o login foi feito.. coloquei ate um System.out.println para verificar se foi realmente o valor 1 que o metodo recebeu...ate ai tudo bem.. ele imprimiu o valor 1 corretamente.. mas o problema acontece quando chama o metodo "getLogin", ele me retorna o valor 0, na verdade ele retorna o mesmo valor que eu declarei lah em cima que por acaso é 0, mas na verdade ele deveria retornar o valor "1" que eu setei para a variavel "l" pelo metodo "mLogin"...
alguem poderia me ajudar? nao sei oq estou fazendo errado..
Por acaso você está dando um “new” logo antes de chamar o segundo método?
B
Bruno_Laturner
Podemos ver como você está chamando essa classe login?
M
Mauro_Filho
Tente mudar a sua variável l para estática
privatestaticintl=0;
Abraços
libo8
Mauro Filho:
Tente mudar a sua variável l para estática
privatestaticintl=0;
Abraços
mt obrigado amigo…
coloquei o static e funcionou perfeitamente…
B
Bruno_Laturner
Mudar para static não é uma solução se você não sabe para quê o static serve. Isso tá mais pra gambiarra.
Você deve estar instanciando dois objetos, e que o login apenas do primeiro. Static apenas propaga o atributo para todos os objetos instanciados dessa classe.
libo8
ambos estao em classes diferentes..
esse joga o valor para o metodo:
login log=new login();
confirm=1;
log.mLogin(confirm);
e esse chama:
loginlg=newlogin();if(lg.getLogin()==1){if(vazio==false){JOptionPane.showMessageDialog(null,"Voce nao prencheu os campos obrigatorios.\nTente novamente");}else{this.comandoSalvar();}}else{JOptionPane.showMessageDialog(null,"Necessario efetuar login.\nTente novamente");}}
Javabuntu
libo8:
ambos estao em classes diferentes..
esse joga o valor para o metodo:
login log=new login();
confirm=1;
log.mLogin(confirm);
e esse chama:
loginlg=newlogin();if(lg.getLogin()==1){if(vazio==false){JOptionPane.showMessageDialog(null,"Voce nao prencheu os campos obrigatorios.\nTente novamente");}else{this.comandoSalvar();}}else{JOptionPane.showMessageDialog(null,"Necessario efetuar login.\nTente novamente");}}
ué meu amigo está mais que claro seu problema:
esse joga o valor para o metodo:
login log=new login();
e esse chama:
login lg=new login();
você está setando o valor com a instância log, e depois cria outra instância lg e compara com a nova....
obviamente nunca vai dar certo... por isso o static deu certo, uma baita gambiarra que você setou o valor pra 1 de todas as instâncias novas...
pra que você ta criando essa nova instância login lg=new login(); ?????
definitivamente não precisa e este é seu erro.
e aqui usa a instância log que criou pra setar:
if(log.getLogin()==1){
colega se vc criar uma instância e setar nela, e depois dar um get com outra instância, nunca vai dar o que você quer...
flw Hewerton
libo8
Javabuntu:
libo8:
ambos estao em classes diferentes..
esse joga o valor para o metodo:
login log=new login();
confirm=1;
log.mLogin(confirm);
e esse chama:
loginlg=newlogin();if(lg.getLogin()==1){if(vazio==false){JOptionPane.showMessageDialog(null,"Voce nao prencheu os campos obrigatorios.\nTente novamente");}else{this.comandoSalvar();}}else{JOptionPane.showMessageDialog(null,"Necessario efetuar login.\nTente novamente");}}
ué meu amigo está mais que claro seu problema:
esse joga o valor para o metodo:
login log=new login();
e esse chama:
login lg=new login();
você está setando o valor com a instância log, e depois cria outra instância lg e compara com a nova....
obviamente nunca vai dar certo... por isso o static deu certo, uma baita gambiarra que você setou o valor pra 1 de todas as instâncias novas...
pra que você ta criando essa nova instância login lg=new login(); ?????
definitivamente não precisa e este é seu erro.
e aqui usa a instância log que criou pra setar:
if(log.getLogin()==1){
colega se vc criar uma instância e setar nela, e depois dar um get com outra instância, nunca vai dar o que você quer...
flw Hewerton
eu criei a nova instancia pois o metodo mLogin e getLogin estao em classes diferentes..
agora complico o negocio.. nao sei como usar a mesma instancia para os dois..
log.mLogin e log.getLogin se ambos estao em classes diferentes..
aonde eu declaro a instancia log??
B
Bruno_Laturner
Passe o objeto login como parâmetro para a outra classe durante a construção dela, ou como parâmetro para algum método dela.
libo8
e como eu faco isso?
estou comecando na linguagem java… hehe
B
Bruno_Laturner
public class ClasseDeNegocio
{
private Login login;
public ClasseDeNegocio (Login login)
{
this.login = login;
}
public void setLogin(Login login)
{
this.login = login;
}
public void realizaNegocio(Login login)
{
// use o parâmetro login passado para fazer o que quiser.
outrosMétodos(login);
}
}
Aliás, por que mLogin e getLogin estão em classes diferentes se no exemplo que você passou eles pertencem à mesma classe?
libo8
renrutal:
public class ClasseDeNegocio
{
private Login login;
public ClasseDeNegocio (Login login)
{
this.login = login;
}
public void setLogin(Login login)
{
this.login = login;
}
public void realizaNegocio(Login login)
{
// use o parâmetro login passado para fazer o que quiser.
outrosMétodos(login);
}
}
Aliás, por que mLogin e getLogin estão em classes diferentes se no exemplo que você passou eles pertencem à mesma classe?
hadsufhuadhsufhs..
eles sao chamados de classes diferentes..
B
Bruno_Laturner
Então faça uma dessas classes receber login como parâmetro, como expliquei acima.
libo8
eu fiz isso em uma dessas class e deu erro nessa parte…
new JFrame().setVisible(true);
libo8
libo8:
renrutal:
public class ClasseDeNegocio
{
private Login login;
public ClasseDeNegocio (Login login)
{
this.login = login;
}
public void setLogin(Login login)
{
this.login = login;
}
public void realizaNegocio(Login login)
{
// use o parâmetro login passado para fazer o que quiser.
outrosMétodos(login);
}
}
Aliás, por que mLogin e getLogin estão em classes diferentes se no exemplo que você passou eles pertencem à mesma classe?
hadsufhuadhsufhs..
eles sao chamados de classes diferentes..
consegue amigo.
pedi ajuda ao meu professor.. e consegui..
passei os valores por parametro e deu certo.. nao precisei usar o static...