publicclassTelaConfextendsjavax.swing.JFrame{publicTelaConf(){initComponents();}SenhaCs3=newSenhaC();char[]sen=s3.getPass3().getPassword();Stringreal="abc";if(sen.equals(real)){//o erro acontece aqui, quando uso ==, dá erro também//tentei com String sen = new String(s3.getPass3().getPassword()); // Continua dando erro. {MensagemPp=newMensagemP();p.setDefaultCloseOperation(javax.swing.JFrame.HIDE_ON_CLOSE);p.setVisible(true);setVisible(false);}else{MensagemSs=newMensagemS();s.setDefaultCloseOperation(javax.swing.JFrame.HIDE_ON_CLOSE);s.setVisible(true);setVisible(false);}}
adrian.gois
publicclassTelaConfextendsjavax.swing.JFrame{publicTelaConf(){initComponents();}SenhaCs3=newSenhaC();//Olha aqui o erro filha. Comparando char com equals. Alem de char[] ser um array de char o que nao parece que sua s3.getPass3().getPassword() retorna.char[]sen=s3.getPass3().getPassword();//O correto seria, caso getPassword() retorno uma String,Stringsen=s3.getPass3().getPassword();Stringreal="abc";if(sen.equals(real)){//o erro acontece aqui, quando uso ==, dá erro também //tentei com String sen = new String(s3.getPass3().getPassword()); // Continua dando erro. }{MensagemPp=newMensagemP();p.setDefaultCloseOperation(javax.swing.JFrame.HIDE_ON_CLOSE);p.setVisible(true);setVisible(false);}else{MensagemSs=newMensagemS();s.setDefaultCloseOperation(javax.swing.JFrame.HIDE_ON_CLOSE);s.setVisible(true);setVisible(false);}}
analins
Coloco abaixo um resumo das classe que uso.
Tento nesses códigos, simular as tela de senha de bancos financeiros (os Buttons exibem letras da senha )
Ao prescionar um Button, ele pega uma letra na primeira tela, outra letra na segunda tela e outra na terceira.
A primeira tela ao ler o digito prescionado por um button deve ser chamada automaticamente a segunda tela, o mesmo p/ 2a com a 3a.
publicclassSenhaS1extendsjavax.swing.JFrame{// 1a telapublicSenhaS1(){initComponents();}publicJPasswordFieldgetPass1(){returnjPasswordField1;}privatevoidinitComponents(){privatevoidbutton8ActionPerformed(java.awt.event.ActionEventevt){valorB("a");}privatevoidbutton7ActionPerformed(java.awt.event.ActionEventevt){valorB("d");}//o mesmo para os outros buttons [...]//o objetivo aqui é: ao ser pressionado um button (ele deve ser lido e a próxima tela deve ser chamada //para ler o outro valor. Esse mesmo método repito nas outras 2 classesprivatevoidjPasswordField1ActionPerformed(java.awt.event.ActionEventevt){char[]seq1=jPasswordField1.getPassword();if(seq1!=null){// ver se caracter dif de nulo, caso verdadeiro chama a 2a tela, funciona???SenhaS2ss2=newSenhaS2();ss2.setDefaultCloseOperation(javax.swing.JFrame.HIDE_ON_CLOSE);ss2.setVisible(true);setVisible(false);}}publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newSenhaSequencia1().setVisible(true);}});}privatejavax.swing.JPasswordFieldjPasswordField1;privatevoidvalorB(Stringletra1){//atribui valor ao buttonjPasswordField1.setText(valor);}}
publicclassSenhaS2extendsjavax.swing.JFrame{//2a telapublicSenhaS2(){initComponents();}publicJPasswordFieldgetPass2(){returnjPasswordField2;}privatevoidbutton1ActionPerformed(java.awt.event.ActionEventevt){valorBotao("b");}// [...]privatevoidvalorBotao(Stringletra2){SenhaS1ss1=newSenhaS1();char[]letra1=ss1.getPass1().getPassword();//pega o valor digitado em SenhaS1jPasswordField2.setText(newString(letra1)+letra2);//adiciona as 2 letras e imprime na tela, correto???}//ou seja é lido 1 digito do button, mas impresso 3 no JPawordField}
publicclassSenhaS3extendsjavax.swing.JFrame{//3a telapublicSenhaS3(){initComponents();}publicJPasswordFieldgetPass3(){returnjPasswordField3;}privatevoidbutton1ActionPerformed(java.awt.event.ActionEventevt){valorBotao("c");}// [...]privatevoidvalorBotao(Stringletra3){SenhaS1ss1=newSenhaS1();char[]letra1=ss1.getPass1().getPassword();//pega o valor digitado em SenhaS1jPasswordField2.setText(newString(letras)+letra3);//adiciona as 2 letras e imprime na tela, correto???}//ou seja é lido 1 digito do button, mas impresso 3 no JPawordField}
publicclassTelaConfextendsjavax.swing.JFrame{//Comparo a senha publicTelaConf(){initComponents();}SenhaCs3=newSenhaC();// char[] sen = s3.getPass3().getPassword(); Stringsen=s3.getPass3().getPassword();//dá erro Stringreal="abc";if(sen.equals(real)){//o erro acontece aqui, quando uso ==, dá erro também //tentei com String sen = new String(s3.getPass3().getPassword()); // Continua dando erro. }{MensagemPp=newMensagemP();p.setDefaultCloseOperation(javax.swing.JFrame.HIDE_ON_CLOSE);p.setVisible(true);setVisible(false);}else{MensagemSs=newMensagemS();s.setDefaultCloseOperation(javax.swing.JFrame.HIDE_ON_CLOSE);s.setVisible(true);setVisible(false);}}
R
roger_rf
Para comparar um char[] com uma String, crie uma nova String com o conteúdo do char[] (a classe String provê um construtor para isso) e em seguida compare a nova String à String de referência com o método equals().
adrian.gois
Seja mais objetiva… Mostre o erro que está dando… fica dificil te ajudar… E mostra tbm o codigo de class SenhaC