package view;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JCheckBox;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.awt.event.ActionEvent;
import com.jgoodies.forms.factories.DefaultComponentFactory;
import constraints.Diretorio;
import model.Jogador;
import util.ArquivoTexto;
import model.JogadorTableModel;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JTabbedPane;
public class JogadorForm extends JFrame {
private String diretorioListaJogadores = "/Users/DELL/documents/Jogadores.txt";
private JPanel contentPane;
private JTextField txtNome;
private JComboBox cboPosicao;
private JTextField txtNumeroCamisa;
private JTextField txtUsuario;
private JPasswordField txtSenha;
private JPasswordField txtConfirmarSenha;
private JCheckBox chkRegistroAtivo;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JogadorForm frame = new JogadorForm(null, null);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public JogadorForm(JogadorTableModel model, Jogador jogador) {
setTitle("Cadastro de Jogadores");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 400, 460);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNome = new JLabel("Nome:");
lblNome.setToolTipText("");
lblNome.setBounds(29, 22, 132, 36);
contentPane.add(lblNome);
txtNome = new JTextField();
txtNome.setToolTipText("Digite o Nome do Jogador");
txtNome.setBounds(29, 59, 324, 35);
contentPane.add(txtNome);
txtNome.setColumns(10);
chkRegistroAtivo = new JCheckBox("Registro ativo");
chkRegistroAtivo.setSelected(true);
chkRegistroAtivo.setToolTipText("Para Ativar um Registro Selecione a Caixa");
chkRegistroAtivo.setBounds(248, 22, 105, 37);
contentPane.add(chkRegistroAtivo);
JButton btnSair = new JButton("Sair");
btnSair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
btnSair.setToolTipText("Clique Aqui Para Sair");
btnSair.setBounds(268, 392, 85, 21);
contentPane.add(btnSair);
JButton btnSalvar = new JButton("Salvar");
btnSalvar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (txtNome.getText().isBlank()) {
JOptionPane.showMessageDialog(null, "Por Favor, Digite o Nome!");
txtNome.requestFocus();
return;
}
String posicao = (String) cboPosicao.getSelectedItem();
if (posicao == null || posicao.isBlank()) {
JOptionPane.showMessageDialog(null, "Por Favor, Informe a Posição!");
cboPosicao.requestFocus();
return;
}
if (txtNumeroCamisa.getText().isBlank()) {
JOptionPane.showMessageDialog(null, "Por Favor, Digite o Número da Camisa!");
txtNumeroCamisa.requestFocus();
return;
}
if (txtUsuario.getText().isBlank()) {
JOptionPane.showMessageDialog(null, "Por Favor, Digite o Nome do Usuário!");
txtUsuario.requestFocus();
return;
}
String senha = new String(txtSenha.getPassword());
String confirmarSenha = new String(txtConfirmarSenha.getPassword());
if (senha.isBlank()) {
JOptionPane.showMessageDialog(null, "Por Favor, Digite a Senha!");
txtSenha.requestFocus();
return;
}
if (confirmarSenha.isBlank()) {
JOptionPane.showMessageDialog(null, "Por Favor, Confirme a Senha!");
txtConfirmarSenha.requestFocus();
return;
}
if (!senha.equals(confirmarSenha)) {
JOptionPane.showMessageDialog(null, "Cuidado!!! A Senha Digitada é Diferente da Confirmação de Senha");
txtSenha.requestFocus();
return;
}
ArquivoTexto arquivoTexto = new ArquivoTexto();
List<Jogador>jogadores = (List<Jogador>) (Object) arquivoTexto.ler(Diretorio.ARQUIVO_JOGADORES);
for (Jogador jogador : jogadores) {
if (jogador.getNome().equals(txtNome.getText())) {
JOptionPane.showMessageDialog(null, "Cuidado!!! O Nome do Jogador já Existe.");
txtNome.requestFocus();
return;
}
else if (jogador.getNumeroCamisa() == Byte.parseByte(txtNumeroCamisa.getText())) {
JOptionPane.showMessageDialog(null, "Cuidado!!! O Número da Camisa do Jogador já Existe.");
txtNumeroCamisa.requestFocus();
return;
}
else if (jogador.getUsuario().equals(txtUsuario.getText())) {
JOptionPane.showMessageDialog(null, "Cuidado!!! O Usuário do Jogador já Existe.");
txtUsuario.requestFocus();
return;
}
}
Jogador jogador = new Jogador();
jogador.setNome(txtNome.getText());
jogador.setPosicao(posicao);
jogador.setNumeroCamisa(Byte.parseByte(txtNumeroCamisa.getText()));
jogador.setUsuario(txtUsuario.getText());;
jogador.setSenha(senha);
jogador.setSituacao(chkRegistroAtivo.isSelected());
jogador.imprimir();
if (model != null) {
model.add(jogador);
}
jogadores.add(jogador);
arquivoTexto.gravar((List<Object>) (Object) jogadores, Diretorio.ARQUIVO_JOGADORES );
JOptionPane.showMessageDialog(null, "Jogador Cadastrado com Sucesso!!!");
}
});
btnSalvar.setToolTipText("Clique Aqui Para Salvar");
btnSalvar.setBounds(173, 392, 85, 21);
contentPane.add(btnSalvar);
JLabel lblPosicao = DefaultComponentFactory.getInstance().createTitle("Posição:");
lblPosicao.setToolTipText("");
lblPosicao.setBounds(29, 93, 132, 35);
contentPane.add(lblPosicao);
JLabel lblNumeroCamisa = DefaultComponentFactory.getInstance().createTitle("Nº da Camisa:");
lblNumeroCamisa.setBounds(221, 93, 132, 35);
contentPane.add(lblNumeroCamisa);
txtNumeroCamisa = new JTextField();
txtNumeroCamisa.setToolTipText("Digite o Número da Camisa do Jogador");
txtNumeroCamisa.setBounds(221, 128, 132, 35);
contentPane.add(txtNumeroCamisa);
txtNumeroCamisa.setColumns(10);
cboPosicao = new JComboBox();
cboPosicao.setModel(new DefaultComboBoxModel(new String[] {"Goleiro", "Zagueiro", "Lateral", "Volante", "Meio-Campo", "Atacante"}));
cboPosicao.setToolTipText("Selecione a Posição do Jogador");
cboPosicao.setBounds(29, 128, 165, 35);
cboPosicao.setSelectedIndex(-1);
contentPane.add(cboPosicao);
JLabel lblUsuario = DefaultComponentFactory.getInstance().createTitle("Usuário:");
lblUsuario.setBounds(29, 162, 132, 35);
contentPane.add(lblUsuario);
txtUsuario = new JTextField();
txtUsuario.setToolTipText("Digite o Usuário do Jogador");
txtUsuario.setBounds(29, 196, 324, 35);
contentPane.add(txtUsuario);
txtUsuario.setColumns(10);
JLabel lblSenha = DefaultComponentFactory.getInstance().createTitle("Senha:");
lblSenha.setBounds(29, 230, 132, 35);
contentPane.add(lblSenha);
txtSenha = new JPasswordField();
txtSenha.setToolTipText("Digite a Senha do Jogador");
txtSenha.setBounds(29, 264, 324, 35);
contentPane.add(txtSenha);
txtSenha.setColumns(10);
JLabel lblConfirmarSenha = new JLabel("Confirmar Senha:");
lblConfirmarSenha.setBounds(29, 299, 132, 36);
contentPane.add(lblConfirmarSenha);
txtConfirmarSenha = new JPasswordField();
txtConfirmarSenha.setToolTipText("Digite a Senha do Jogador Novamente");
txtConfirmarSenha.setBounds(29, 335, 324, 35);
contentPane.add(txtConfirmarSenha);
txtConfirmarSenha.setColumns(10);
if(jogador != null) {
txtNome.setText(jogador.getNome());
cboPosicao.setSelectedItem(jogador.getPosicao());
txtNumeroCamisa.setText(Byte.toString(jogador.getNumeroCamisa()));
txtUsuario.setText(jogador.getUsuario());
txtSenha.setText(jogador.getSenha());
txtConfirmarSenha.setText(jogador.getSenha());
}
JButton btnAlterar = new JButton("Alterar");
btnAlterar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Alterar
}
});
btnAlterar.setToolTipText("Clique Aqui Para Alterar");
btnAlterar.setBounds(76, 392, 85, 21);
contentPane.add(btnAlterar);
this.setLocationRelativeTo(null);
}
}