Ir ao conteúdo

Posts recomendados

Postado

Boa noite, pessoal. Eu estou tentando desenvolver um programa em Java que consiste no cadastro de funcionários. A ideia do programa é receber os dados e utilizá-los num login. O algoritmo do login já está pronto, mas eu estou tendo dificuldades de passar os dados (usuário e senha) para a classe Login, para que estes dados sejam utilizados na classe. Caso necessário, a sintaxe das duas classes é a seguinte: 

Classe Login: 

package projeto; 

import java.awt.Dimension; 
import java.awt.Toolkit; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPasswordField; 
import javax.swing.JTextField; 
import javax.swing.SwingUtilities; 
import javax.tools.Tool; 

public class Login extends JFrame 
{ 
private JTextField tfLogin; 
private JLabel lbSenha; 
private JLabel lbLogin; 
private JButton btLogar, btCadastrar; 
private JButton btCancelar; 
private JPasswordField pfSenha; 
private static Login frame; 

public Login() 
{ 
inicializarComponentes(); 
definarEventos(); 
} 

Cadastro cadastro = new Cadastro(); 

private void inicializarComponentes() 
{ 
setTitle("Login no Sistema"icon_wink.gif; 
setBounds(0,0,250,220); 
setLayout(null); 

tfLogin= new JTextField(10); 
pfSenha = new JPasswordField(); 
lbSenha = new JLabel("Senha"icon_wink.gif; 
lbLogin = new JLabel("Login"icon_wink.gif; 
btLogar = new JButton("Logar"icon_wink.gif; 
btCancelar = new JButton("Cancelar"icon_wink.gif; 
btCadastrar = new JButton("Cadastrar"icon_wink.gif; 

tfLogin.setBounds(100, 30, 120, 25); 
lbLogin.setBounds(30, 30, 80, 25); 
lbSenha.setBounds(30, 75, 80, 25); 
pfSenha.setBounds(100, 75, 120, 25); 
btLogar.setBounds(20, 120, 100, 25); 
btCancelar.setBounds(125, 120, 100, 25); 
btCadastrar.setBounds(20, 150, 205, 25); 

add(tfLogin); 
add(lbSenha); 
add(lbLogin); 
add(btLogar); 
add(btCancelar); 
add(pfSenha); 
add(btCadastrar); 
} 

private void definarEventos() 
{ 
btLogar.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
//String senha = String.valueOf(pfSenha.getPassword()); 
if(tfLogin.getText().equals(cadastro.usuario) && pfSenha.equals(cadastro.senha)){ 
frame.setVisible(false); 
MenuPrincipal.abrir(); 
} 
else 
{ 
JOptionPane.showMessageDialog(null, "Login ou Senha incorretas!"icon_wink.gif; 
}
} 
} 
); 

btCadastrar.addActionListener(new ActionListener() { 

@Override 
public void actionPerformed(ActionEvent e) { 
Cadastro cadastro = new Cadastro(); 
cadastro.cadastrar(); 
} 
}); 
} 

public static void main(String[] args) 
{ 
SwingUtilities.invokeLater(new Runnable() 
{
public void run() 
{ 
frame = new Login(); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
Dimension tela = Toolkit.getDefaultToolkit().getScreenSize(); 
frame.setLocation((tela.width - frame.getSize().width) / 2, 
(tela.height - frame.getSize().height) / 2); 
frame.setVisible(true); 
} 
} 
); 
} 
} 


Classe Cadastro: 

package projeto; 

import java.awt.Dimension; 
import java.awt.Toolkit; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.*; 

public class Cadastro extends JFrame{ 

private JTextField Usuario; 
private JLabel jlSenha, jlUsuario; 
private JButton Cadastrar, Cancelar; 
private JPasswordField Senha; 
public String usuario; 
char[] senha; 
Cadastro contentPane; 

public Cadastro(){ 
inicializarComponentes(); 
definirEventos(); 
} 


private void inicializarComponentes(){ 
setTitle("Usuario no Sistema"icon_wink.gif; 
setBounds(0,0,350,300); 
setLayout(null); 

Usuario = new JTextField(10); 
Senha = new JPasswordField(); 
jlSenha = new JLabel("Senha: "icon_wink.gif; 
jlUsuario = new JLabel("Usuário (máximo de 10 letras): "icon_wink.gif; 
Cadastrar = new JButton("Cadastrar"icon_wink.gif; 
Cancelar = new JButton("Cancelar"icon_wink.gif; 

jlSenha.setBounds(50, 60, 120, 25); 
jlUsuario.setBounds(50, 30, 120, 25); 
Usuario.setBounds(95, 30, 120, 25); 
Senha.setBounds(95, 60, 120, 25); 
Cadastrar.setBounds(5, 100, 125, 25); 
Cancelar.setBounds(135, 100, 125, 25); 

add(Cadastrar); 
add(Cancelar); 
add(Usuario); 
add(Senha); 
add(jlUsuario); 
add(jlSenha); 
} 

private void definirEventos(){ 
Cadastrar.addActionListener(new ActionListener() { 

@Override 
public void actionPerformed(ActionEvent arg0) { 
JOptionPane.showMessageDialog(null, "Cadastrado com sucesso!"icon_wink.gif; 
usuario = (Usuario.getText()); 
senha = (Senha.getPassword()); 
dispose(); 
} 
}); 

Cancelar.addActionListener(new ActionListener() { 
int opcao; 
@Override 
public void actionPerformed(ActionEvent arg0) { 
opcao = JOptionPane.showConfirmDialog(null, "Você realmente deseja cancelar o cadastro?", null, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); 
if(opcao == JOptionPane.YES_OPTION){ 
dispose(); 
} 
} 
}); 
} 

public void cadastrar() 
{ 
Cadastro frame = new Cadastro(); 
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 
Dimension tela = Toolkit.getDefaultToolkit().getScreenSize(); 
frame.setLocation((tela.width - frame.getSize().width) / 2, 
(tela.height - frame.getSize().height / 2)); 
frame.setVisible(true); 
} 

} 

Se alguém puder ajudar, eu agradeço muito (ignorem os emoticons). 

Postado

O que voce quer fazer? ficou confuso a pergunta " A ideia do programa é receber os dados(receber os dados do cadastro?) e utilizá-los num login. O algoritmo do login já está pronto, mas eu estou tendo dificuldades de passar os dados (usuário e senha) para a classe Login "

Postado

@Snack169 Os dados do cadastro (que seriam recebidos) seriam o login e a senha. No caso eles seriam usados para fazer o login. Por exemplo: A pessoa clica no botão "Cadastro", coloca o usuário e a senha desejados e clica no botão "cadastrar". Então ela colocará o usuário e a senha na parte de login e poderá entrar no programa.

Postado

Tipo voce quer que quando o cara clique no login ja aparece os campos preenchido com o ultimo cadastro? ou quando clicar em login digitar o "login" e a "senha" e clicar em logar e entrar no sistema? se for a ultima opção você cria uma banco de dados e armazena os dados do cadastro, e no login faz uma verificação no banco usando SQL para ver se o usuário existe

Postado

@Snack169 Na verdade, o desafio é não usar um banco de dados. A minha ideia é fazer um login perecido com o que vemos em um site por exemplo, mas sem o banco de dados. O meu único problema até agora realmente é utilizar as informações colocadas na classe "cadastro" na classe "login". Da maneira que eu fiz, sempre dá "Login ou senha incorretos".

Postado

 

Não vou saber te ajudar corretamente, pois sempre usei 2 classe para uma tela. Exemplo classePublic (onde fica os public void e os getters and setters) e a classeTELA (onde fica os botões) e na ação desses botões puxa o VOID da classePublic.

 

 

Para tentar resolver esse problema eu faria da seguinte forma:

 

Criaria a LoginPublic e as variáveis String Login/ String Senha faria o get e o set delas e o public void de logar

 

E criaria a cadastroTela e no botão de cadastrar faria 

 

LoginPublic login = new LoginPublic();

 

login.login =NomeDoTextField.getText();

login.senha =NomeDoTextField.getText(); 

 

Criaria a LoginTela e no botao do login faria

 

LoginPublic login = new LoginPublic();

login.logar();

 

daí voce tem que fazer ele retornar um valor para verificar se deu certo o login

 

if(return == 1){

JOPtionPane.showMessageDialog (null,"Logado com sucesso");

{else{

JOPtionPane.showMessageDialog (null,"Erro ao logar");

}

 

Cara não sei se isso ira funcionar, pois não tenho nenhum exemplo dos que eu ja fiz em mãos. Mas tentei ajudar.

Outro problema é que só ira funcionar com o ultimo cadastrado, acho que para resolver seria necessário fazer o uso de VETOR e não sei mexer com vetor.

 

Postado
1 hora atrás, Snack169 disse:

 

Não vou saber te ajudar corretamente, pois sempre usei 2 classe para uma tela. Exemplo classePublic (onde fica os public void e os getters and setters) e a classeTELA (onde fica os botões) e na ação desses botões puxa o VOID da classePublic.

 

 

Para tentar resolver esse problema eu faria da seguinte forma:

 

Criaria a LoginPublic e as variáveis String Login/ String Senha faria o get e o set delas e o public void de logar

 

E criaria a cadastroTela e no botão de cadastrar faria 

 

LoginPublic login = new LoginPublic();

 

login.login =NomeDoTextField.getText();

login.senha =NomeDoTextField.getText(); 

 

Criaria a LoginTela e no botao do login faria

 

LoginPublic login = new LoginPublic();

login.logar();

 

daí voce tem que fazer ele retornar um valor para verificar se deu certo o login

 

if(return == 1){

JOPtionPane.showMessageDialog (null,"Logado com sucesso");

{else{

JOPtionPane.showMessageDialog (null,"Erro ao logar");

}

 

Cara não sei se isso ira funcionar, pois não tenho nenhum exemplo dos que eu ja fiz em mãos. Mas tentei ajudar.

Outro problema é que só ira funcionar com o ultimo cadastrado, acho que para resolver seria necessário fazer o uso de VETOR e não sei mexer com vetor.

 

Certo, vou testar aqui. Obrigado pela atenção :-)

Postado

É, acredito que um banco de dados ou um collection irá resolver seu problema, se seu problema for recuperar usuarios recém cadastrados.

Vai ter que criar uma classe Usuario pra guardar as informações de login e senha.

 

aí toda vida que cadastrar, insere nessa Collection que será uma variavel global.
Aí quando você for logar, faz uma pesquisa na collection pelo login e compara o campo senha c/ o a senha do Usuario.
Espero que eu tenha sido claro.
Mas isso não é desafio, na real assim fica mais simples pois você não terá que fazer nenhuma transação e terá a desvantagem de os dados ficarem guardados na memoria e ao fechar o aplicativo, perder todo o cadastro.

Uma ideia seria então guardar esses usuarios em um arquivo texto, não será seguro mas será um desafio =D


 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!