Bom dia pessoal,
então, sou iniciante no java e novo aqui no fórum.
Estou aprendendo java com a apostila da caelum(fj11), porém surgiu um pequeno problema no meu programa e não estou conseguindo resolvê-lo.
Bom, vamos ao que interessa.
Situação:
Estou aprendendo manipulação de arquivo e no meu simples programa, tenho 4 classes, são elas: teste(main),senha,validaSenha,telaPrincipal.
A idéia é simples, faço o login e acesso minha classe telaPrincipal, entretanto, a validação do login é feita através da consulta de um arquivo para comparar e validar o usuário e senha.
Segue a classe.
package Login;
import javax.swing.;
import java.awt.;
import java.awt.event.*;
import Validar.ValidaSenha;
public class Senha extends JFrame {
private JLabel lbNome, lbSenha;
private JTextField tfNome, tfResultado;
private JPasswordField tfSenha;
private JButton botao;
private JPanel painel, painel2;
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem sair;
private String nome;
private String senha;
ValidaSenha validaSenha = new ValidaSenha();
public Senha() {
lbNome = new JLabel("Nome:");
tfNome = new JTextField(10);
lbSenha = new JLabel("Senha:");
tfSenha = new JPasswordField(10);
botao = new JButton("Enviar");
tfResultado = new JTextField(10);
painel = new JPanel(new GridLayout(2, 0));
painel2 = new JPanel();
menuBar = new JMenuBar();
menu = new JMenu("Menu");
sair = new JMenuItem("Sair");
this.setTitle("Login");
tfResultado.setEditable(false);
menu.add(sair);
menuBar.add(menu);
this.setJMenuBar(menuBar);
painel.add(lbNome);
painel.add(tfNome);
painel.add(lbSenha);
painel.add(tfSenha);
painel2.add(botao);
this.add(painel, "North");
this.add(painel2, "Center");
this.setVisible(true);
this.pack();
this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
painel.setBackground(Color.LIGHT_GRAY);
painel2.setBackground(Color.LIGHT_GRAY);
tfNome.setBackground(Color.WHITE);
tfSenha.setBackground(Color.WHITE);
this.nome=tfNome.getText(); // <---------------------------- acho que aqui está o problema.
this.senha=tfSenha.getText();// <---------------------------- e aqui também.
/**Quando fiz um teste para ver o que estava sendo atribuído para as duas variáveis, simplismente não imprimiu nada.
Por isso, quando comparo seus valores com os que estão no arquivo sempre retorna um "false". */
botao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(validaSenha.Validar()==true)
new TelaPrincipal().show();
else{
JOptionPane.showMessageDialog(null, "Login ou senha incorreto");
tfNome.setText(null);
tfSenha.setText(null);
}
}
});
sair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
public String getNome()
{
return this.nome;
}
public String getSenha()
{
return this.senha;
}
}
Segue também a classe validaSenha.
package Validar;
import java.io.*;
import Login.Senha;
public class ValidaSenha {
public boolean Validar(){
try
{
InputStream arq = new FileInputStream("C:/Documents and Settings/E003810/arquivo.txt");
InputStreamReader isr = new InputStreamReader(arq);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
Senha senha = new Senha();
if(senha.getNome().equals(s.substring(0,4))&& senha.getSenha().equals(s.substring(4,9)))
{
return true;
}
br.close();
}catch(IOException e){
System.out.println("Erro"+e);
}
return false;
}
}
Espero que eu tenha sido claro e conciso(pelo menos nas dúvidas).
Abraços…=]