package view;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.text.MaskFormatter;
import constraints.Diretorio;
import model.Jogador;
import util.ArquivoTexto;
import javax.swing.ImageIcon;
import java.awt.Color;
import java.awt.Toolkit;
public class Login extends JFrame {
private JPanel contentPane;
private JPasswordField txtSenha;
private JFormattedTextField txtCpf;
public static void main(String[] args) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| javax.swing.UnsupportedLookAndFeelException ex) {
System.err.println(ex);
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Login frame = new Login();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Login() {
setIconImage(Toolkit.getDefaultToolkit().getImage(Diretorio.IMAGEM_ICONE));
setTitle("Login");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 604, 377);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblTitulo = new JLabel("BEM VINDO");
lblTitulo.setForeground(new Color(255, 255, 255));
lblTitulo.setBackground(new Color(255, 255, 255));
lblTitulo.setHorizontalAlignment(SwingConstants.CENTER);
lblTitulo.setFont(new Font("Century Gothic", Font.BOLD, 42));
lblTitulo.setBounds(110, 28, 367, 41);
contentPane.add(lblTitulo);
JLabel lblCPF = new JLabel("CPF");
lblCPF.setForeground(new Color(255, 255, 255));
lblCPF.setBackground(new Color(255, 255, 255));
lblCPF.setFont(new Font("Arial", Font.BOLD, 14));
lblCPF.setBounds(183, 90, 46, 14);
contentPane.add(lblCPF);
try {
MaskFormatter formatacaoCpf = new MaskFormatter("###.###.###-##");
txtCpf = new JFormattedTextField(formatacaoCpf);
txtCpf.setToolTipText("Digite o Cpf");
txtCpf.setFont(new Font("Arial", Font.PLAIN, 11));
txtCpf.setBounds(183, 109, 221, 30);
contentPane.add(txtCpf);
JLabel lblSenha = new JLabel("Senha");
lblSenha.setForeground(new Color(255, 255, 255));
lblSenha.setFont(new Font("Arial", Font.BOLD, 14));
lblSenha.setBounds(183, 160, 46, 14);
contentPane.add(lblSenha);
txtSenha = new JPasswordField();
txtSenha.setToolTipText("Digite a senha cadastrada");
txtSenha.setFont(new Font("Arial", Font.PLAIN, 11));
txtSenha.setBounds(183, 178, 221, 30);
contentPane.add(txtSenha);
JButton btnCadastrar = new JButton("Cadastrar");
btnCadastrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CadastroJogador CadastroJogador = new CadastroJogador(null);
CadastroJogador.setLocationRelativeTo(CadastroJogador);
CadastroJogador.setVisible(true);
}
});
btnCadastrar.setToolTipText("Clique aqui para fazer o cadastro");
btnCadastrar.setFont(new Font("Arial", Font.BOLD, 11));
btnCadastrar.setBounds(146, 261, 98, 30);
contentPane.add(btnCadastrar);
JButton btnEntrar = new JButton("Entrar");
btnEntrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String cpf = txtCpf.getText().replaceAll("[^0-9]", ""); // remove formatacao do CPF
String senha = new String(txtSenha.getPassword());
if (cpf.isBlank()) {
JOptionPane.showMessageDialog(null, "Por Favor, insira o CPF");
return;
}
if (senha.isBlank()) {
JOptionPane.showMessageDialog(null, "Por Favor, insira a senha");
return;
}
ArquivoTexto arquivoTexto = new ArquivoTexto();
List<Jogador> jogadores = (List<Jogador>) (Object) arquivoTexto.ler(Diretorio.ARQUIVO_JOGADORES);
for (Jogador jogador : jogadores) {
if(cpf.equals(txtCpf.getText().replaceAll("[^0-9]", ""))) { //cpf esta verificado se é o correto
if(jogador.getSenha().equals(senha)) { //senha verificada se é a correta
MenuPrincipal menuPrincipal = new MenuPrincipal();
menuPrincipal.setLocationRelativeTo(menuPrincipal);
menuPrincipal.setVisible(true);
dispose();
return;
}
}
JOptionPane.showInternalMessageDialog(null, "CPF ou senha Incorretos");
return;
}
}
});
btnEntrar.setToolTipText("Clique aqui para Logar");
btnEntrar.setFont(new Font("Arial", Font.BOLD, 11));
btnEntrar.setBounds(369, 261, 98, 30);
contentPane.add(btnEntrar);
JLabel lblImagem = new JLabel(".");
lblImagem.setIcon(new ImageIcon(Diretorio.IMAGEM_LOGIN));
lblImagem.setBounds(0, 0, 588, 338);
contentPane.add(lblImagem);
this.setLocationRelativeTo(null);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}