Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package View; import DAO.AlunoJpaController; import DataBase.Aluno; import academiavisual.FormPrincipal; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.Query; import javax.swing.JOptionPane; import com.google.common.base.Charsets; import com.google.common.hash.Hashing; /** * * @author Luccas */ public class JInternalFrameCadastroAluno2 extends javax.swing.JInternalFrame { /** * Creates new form JInternalFrameCadastroAluno2 */ public JInternalFrameCadastroAluno2() { initComponents(); abaConsulta(); System.out.println("AlunoList Class : " + alunoList.getClass().getName()); System.out.println("Size: " + alunoList.size()); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { bindingGroup = new org.jdesktop.beansbinding.BindingGroup(); entityManagerAluno = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("AcademiaVisualPU") .createEntityManager(); alunoQuery = java.beans.Beans.isDesignTime() ? null : entityManagerAluno.createQuery("SELECT a FROM Aluno a"); alunoList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : alunoQuery.getResultList(); jTabbedPaneAluno = new javax.swing.JTabbedPane(); jPanelConsultaAluno = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); jTableAluno = new javax.swing.JTable(); jLabelProcurarAluno = new javax.swing.JLabel(); jTextFieldProcurarAluno = new javax.swing.JTextField(); jComboBoxProcurarAluno = new javax.swing.JComboBox(); jButtonProcurarAluno = new javax.swing.JButton(); jPanelAlterarAluno = new javax.swing.JPanel(); jLabelNomeAluno = new javax.swing.JLabel(); jLabelCpfAluno = new javax.swing.JLabel(); jLabelDataNascimentoAluno = new javax.swing.JLabel(); jLabelPesoAluno = new javax.swing.JLabel(); jLabelAlturaAluno = new javax.swing.JLabel(); jLabelEnderecoAluno = new javax.swing.JLabel(); jLabelLoginAluno = new javax.swing.JLabel(); jLabelSenhaAluno = new javax.swing.JLabel(); jLabelEmailAluno = new javax.swing.JLabel(); jLabelValidadeAluno = new javax.swing.JLabel(); jTextFieldNomeAluno = new javax.swing.JTextField(); jTextFieldPesoAluno = new javax.swing.JTextField(); jTextFieldAlturaAluno = new javax.swing.JTextField(); jTextFieldEnderecoAluno = new javax.swing.JTextField(); jTextFieldLoginAluno = new javax.swing.JTextField(); jTextFieldEmailAluno = new javax.swing.JTextField(); jPasswordFieldSenhaAluno = new javax.swing.JPasswordField(); jLabelIdAluno = new javax.swing.JLabel(); jTextFieldIdAluno = new javax.swing.JTextField(); jCheckBoxSenhaAluno = new javax.swing.JCheckBox(); jFormattedTextFieldDataAluno = new javax.swing.JFormattedTextField(); jFormattedTextFieldValidadeAluno = new javax.swing.JFormattedTextField(); jFormattedTextFieldUltimaEntradaAluno = new javax.swing.JFormattedTextField(); jLabel1 = new javax.swing.JLabel(); jFormattedTextFieldCpfAluno = new javax.swing.JFormattedTextField(); jButtonInserirAluno = new javax.swing.JButton(); jButtonAlterarAluno = new javax.swing.JButton(); jButtonExcluirAluno = new javax.swing.JButton(); jButtonFecharAluno = new javax.swing.JButton(); jButtonCancelarAluno = new javax.swing.JButton(); jButtonConfirmarAluno = new javax.swing.JButton(); setTitle("Cadastro Aluno"); addInternalFrameListener(new javax.swing.event.InternalFrameListener() { public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) { formInternalFrameOpened(evt); } }); org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings .createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, alunoList, jTableAluno); org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${id}")); columnBinding.setColumnName("Id"); columnBinding.setColumnClass(Integer.class); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${nome}")); columnBinding.setColumnName("Nome"); columnBinding.setColumnClass(String.class); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${endereco}")); columnBinding.setColumnName("Endereco"); columnBinding.setColumnClass(String.class); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${dataNascimento}")); columnBinding.setColumnName("Data Nascimento"); columnBinding.setColumnClass(java.util.Date.class); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${altura}")); columnBinding.setColumnName("Altura"); columnBinding.setColumnClass(Float.class); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${peso}")); columnBinding.setColumnName("Peso"); columnBinding.setColumnClass(Float.class); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${validade}")); columnBinding.setColumnName("Validade"); columnBinding.setColumnClass(java.util.Date.class); bindingGroup.addBinding(jTableBinding); jTableBinding.bind(); jScrollPane1.setViewportView(jTableAluno); jLabelProcurarAluno.setText("Opo De Busca"); jComboBoxProcurarAluno.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Id", "Nome" })); jButtonProcurarAluno.setText("Buscar"); jButtonProcurarAluno.setMaximumSize(new java.awt.Dimension(75, 23)); jButtonProcurarAluno.setMinimumSize(new java.awt.Dimension(75, 23)); jButtonProcurarAluno.setPreferredSize(new java.awt.Dimension(75, 23)); jButtonProcurarAluno.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonProcurarAlunoActionPerformed(evt); } }); javax.swing.GroupLayout jPanelConsultaAlunoLayout = new javax.swing.GroupLayout(jPanelConsultaAluno); jPanelConsultaAluno.setLayout(jPanelConsultaAlunoLayout); jPanelConsultaAlunoLayout.setHorizontalGroup(jPanelConsultaAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 683, Short.MAX_VALUE) .addGroup(jPanelConsultaAlunoLayout.createSequentialGroup().addContainerGap() .addComponent(jLabelProcurarAluno) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jComboBoxProcurarAluno, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jTextFieldProcurarAluno, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButtonProcurarAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jPanelConsultaAlunoLayout.setVerticalGroup(jPanelConsultaAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelConsultaAlunoLayout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 244, Short.MAX_VALUE) .addGap(18, 18, 18) .addGroup(jPanelConsultaAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelProcurarAluno) .addComponent(jTextFieldProcurarAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButtonProcurarAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jComboBoxProcurarAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap())); jTabbedPaneAluno.addTab("Consulta", jPanelConsultaAluno); jLabelNomeAluno.setText("Nome:"); jLabelCpfAluno.setText("CPF:"); jLabelDataNascimentoAluno.setText("Data Nascimento:"); jLabelPesoAluno.setText("Peso:"); jLabelAlturaAluno.setText("Altura:"); jLabelEnderecoAluno.setText("Endereco:"); jLabelLoginAluno.setText("Login:"); jLabelSenhaAluno.setText("Senha:"); jLabelEmailAluno.setText("Email:"); jLabelValidadeAluno.setText("Validade:"); jLabelIdAluno.setText("ID:"); jTextFieldIdAluno.setEnabled(false); jCheckBoxSenhaAluno.setText("Trocar Senha P.A."); jFormattedTextFieldDataAluno.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory( new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("yyyy/M/d")))); jFormattedTextFieldDataAluno.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jFormattedTextFieldDataAlunoMouseClicked(evt); } }); jFormattedTextFieldValidadeAluno.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory( new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("yyyy/M/d")))); jFormattedTextFieldValidadeAluno.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jFormattedTextFieldValidadeAlunoMouseClicked(evt); } }); jFormattedTextFieldUltimaEntradaAluno.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory( new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("yyyy/M/d")))); jFormattedTextFieldUltimaEntradaAluno.setEnabled(false); jFormattedTextFieldUltimaEntradaAluno.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jFormattedTextFieldUltimaEntradaAlunoMouseClicked(evt); } }); jLabel1.setText("Ultima Entrada:"); try { jFormattedTextFieldCpfAluno.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory( new javax.swing.text.MaskFormatter("###.###.###-##"))); } catch (java.text.ParseException ex) { ex.printStackTrace(); } javax.swing.GroupLayout jPanelAlterarAlunoLayout = new javax.swing.GroupLayout(jPanelAlterarAluno); jPanelAlterarAluno.setLayout(jPanelAlterarAlunoLayout); jPanelAlterarAlunoLayout.setHorizontalGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelAlterarAlunoLayout.createSequentialGroup().addContainerGap() .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabelEnderecoAluno).addComponent(jLabelCpfAluno) .addComponent(jLabelNomeAluno).addComponent(jLabelDataNascimentoAluno) .addComponent(jLabelPesoAluno).addComponent(jLabelLoginAluno) .addComponent(jLabelEmailAluno).addComponent(jLabelValidadeAluno) .addComponent(jLabelIdAluno).addComponent(jLabel1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextFieldNomeAluno) .addComponent(jTextFieldEmailAluno, javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelAlterarAlunoLayout .createSequentialGroup() .addComponent(jTextFieldPesoAluno, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabelAlturaAluno) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextFieldAlturaAluno, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jFormattedTextFieldDataAluno) .addComponent(jFormattedTextFieldValidadeAluno) .addComponent(jFormattedTextFieldCpfAluno).addComponent(jTextFieldEnderecoAluno) .addGroup(jPanelAlterarAlunoLayout.createSequentialGroup() .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jFormattedTextFieldUltimaEntradaAluno, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextFieldIdAluno, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanelAlterarAlunoLayout.createSequentialGroup() .addComponent(jTextFieldLoginAluno, javax.swing.GroupLayout.PREFERRED_SIZE, 116, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabelSenhaAluno) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPasswordFieldSenhaAluno, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(0, 0, Short.MAX_VALUE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jCheckBoxSenhaAluno).addGap(144, 144, 144))); jPanelAlterarAlunoLayout.setVerticalGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelAlterarAlunoLayout.createSequentialGroup().addContainerGap() .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelIdAluno).addComponent(jTextFieldIdAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelNomeAluno).addComponent(jTextFieldNomeAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelCpfAluno).addComponent(jFormattedTextFieldCpfAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelDataNascimentoAluno).addComponent(jFormattedTextFieldDataAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelPesoAluno) .addComponent(jTextFieldPesoAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextFieldAlturaAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabelAlturaAluno)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelEnderecoAluno).addComponent(jTextFieldEnderecoAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelLoginAluno) .addComponent(jTextFieldLoginAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabelSenhaAluno) .addComponent(jPasswordFieldSenhaAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jCheckBoxSenhaAluno)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextFieldEmailAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabelEmailAluno)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelValidadeAluno).addComponent(jFormattedTextFieldValidadeAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarAlunoLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jFormattedTextFieldUltimaEntradaAluno, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jTabbedPaneAluno.addTab("Alterar", jPanelAlterarAluno); jButtonInserirAluno.setText("Inserir"); jButtonInserirAluno.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonInserirAlunoActionPerformed(evt); } }); jButtonAlterarAluno.setText("Alterar"); jButtonAlterarAluno.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAlterarAlunoActionPerformed(evt); } }); jButtonExcluirAluno.setText("Excluir"); jButtonExcluirAluno.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonExcluirAlunoActionPerformed(evt); } }); jButtonFecharAluno.setText("Fechar"); jButtonFecharAluno.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonFecharAlunoActionPerformed(evt); } }); jButtonCancelarAluno.setText("Cancelar"); jButtonCancelarAluno.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCancelarAlunoActionPerformed(evt); } }); jButtonConfirmarAluno.setText("Confirmar"); jButtonConfirmarAluno.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonConfirmarAlunoActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTabbedPaneAluno) .addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jButtonInserirAluno) .addGap(18, 18, 18).addComponent(jButtonAlterarAluno).addGap(18, 18, 18) .addComponent(jButtonExcluirAluno).addGap(18, 18, 18).addComponent(jButtonConfirmarAluno) .addGap(18, 18, 18).addComponent(jButtonCancelarAluno) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButtonFecharAluno).addContainerGap())); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addComponent(jTabbedPaneAluno) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButtonInserirAluno).addComponent(jButtonAlterarAluno) .addComponent(jButtonExcluirAluno).addComponent(jButtonFecharAluno) .addComponent(jButtonCancelarAluno).addComponent(jButtonConfirmarAluno)) .addContainerGap())); bindingGroup.bind(); pack(); }// </editor-fold>//GEN-END:initComponents //Bind automtico no funiona como o esperado. Os mtodos abaixo circulam este problema. /** * Popula os textField da aba Alterar. * * @param a Fonte dos dados para o textField, caso seja null os campos sero * esvaziados. */ private void popularCamposAlterar(Aluno a) { if (a == null) { jTextFieldAlturaAluno.setText(""); jTextFieldEmailAluno.setText(""); jTextFieldEnderecoAluno.setText(""); jTextFieldIdAluno.setText(""); jTextFieldLoginAluno.setText(""); jTextFieldNomeAluno.setText(""); jTextFieldPesoAluno.setText(""); jFormattedTextFieldCpfAluno.setValue(null); jFormattedTextFieldDataAluno.setValue(null); jFormattedTextFieldUltimaEntradaAluno.setValue(null); jFormattedTextFieldValidadeAluno.setValue(null); jPasswordFieldSenhaAluno.setText(""); } else { jTextFieldAlturaAluno.setText(Float.toString(a.getAltura())); jTextFieldEmailAluno.setText(a.getEmail()); jTextFieldEnderecoAluno.setText(a.getEndereco()); jTextFieldIdAluno.setText(Integer.toString(a.getId())); jTextFieldLoginAluno.setText(a.getLogin()); jTextFieldNomeAluno.setText(a.getNome()); jTextFieldPesoAluno.setText(Float.toString(a.getPeso())); jFormattedTextFieldCpfAluno.setValue(a.getCpf()); jFormattedTextFieldDataAluno.setValue(a.getDataNascimento()); jFormattedTextFieldUltimaEntradaAluno.setValue(a.getUltimaEntrada()); jFormattedTextFieldValidadeAluno.setValue(a.getValidade()); jPasswordFieldSenhaAluno.setText(a.getSenha()); } } /** * Aps a edio do objeto pega dados da aba Alterar e coloca no objeto. * * @param a Objeto a ser populado. */ private void popularObjeto(Aluno a) { //TODO: Garantir que @param no nulo /*O campo ID gerado pelo banco de dados*/ a.setAltura(Float.parseFloat(jTextFieldAlturaAluno.getText())); a.setCpf((String) jFormattedTextFieldCpfAluno.getValue()); a.setDataNascimento((Date) jFormattedTextFieldDataAluno.getValue()); a.setEmail(jTextFieldEmailAluno.getText()); a.setEndereco(jTextFieldEnderecoAluno.getText()); //a.setId(Integer.parseInt(jTextFieldIdAluno.getText()));//E se for NULL? a.setLogin(jTextFieldLoginAluno.getText()); a.setNome(jTextFieldNomeAluno.getText()); a.setPeso(Float.parseFloat(jTextFieldPesoAluno.getText())); a.setSenha(Hashing.sha256().hashString(jPasswordFieldSenhaAluno.getText(), Charsets.UTF_8).toString()); a.setUltimaEntrada((Date) jFormattedTextFieldUltimaEntradaAluno.getValue()); a.setValidade((Date) jFormattedTextFieldValidadeAluno.getValue()); } /** * Entra na Aba de Consulta */ private void abaConsulta() { jTabbedPaneAluno.setSelectedIndex(0); jTabbedPaneAluno.setEnabledAt(0, true); jTabbedPaneAluno.setEnabledAt(1, false); jButtonConfirmarAluno.setEnabled(false); jButtonCancelarAluno.setEnabled(false); jButtonInserirAluno.setEnabled(true); jButtonAlterarAluno.setEnabled(true); jButtonExcluirAluno.setEnabled(true); } /** * Entra na Aba de Alterar */ private void abaAlterar() { jTabbedPaneAluno.setSelectedIndex(1); jTabbedPaneAluno.setEnabledAt(1, true); jTabbedPaneAluno.setEnabledAt(0, false); jButtonInserirAluno.setEnabled(false); jButtonAlterarAluno.setEnabled(false); jButtonExcluirAluno.setEnabled(false); jButtonConfirmarAluno.setEnabled(true); jButtonCancelarAluno.setEnabled(true); } /** * Valida os campos de acordo com as normas: * <ul> * <li> EMAIL: vlido, no nulo e menor que 40; * <li> NOME: no nulo e menor que 40; * <li> CPF: Estar no formato nnn.nnn.nnn-nn -> n = nmero qualquer TODO: * Validao! * <li> LOGIN: serm menor que 40 e nico( realizado consulta no banco de * dados); * <li> PASSWORD: deve ser maior que 6, menor que 15 e no nulo; * <li> ENDEREO: Campo no dever ser nulo e menor que 40 caracteres. * </ul> * * @return <b>true</b> caso passe na validao, <b>false</b> caso contrrio. */ private boolean validacaoDeCampos() { boolean valido = true; String msgErro = ""; String campo; //Checa o campo EMAIL: Pattern p = Pattern.compile("^[\\w-]+(\\.[\\w-]+)*@([\\w-]+\\.)+[a-zA-Z]{2,7}$"); Matcher m = p.matcher(jTextFieldEmailAluno.getText()); campo = jTextFieldEmailAluno.getText(); if ((!m.find()) || ("".equals(campo)) || (campo.length() > 40)) { valido = false; msgErro += "Email invlido. O campo deve ser vlido, no nulo e menor que 40 caracteres\n"; jTextFieldEmailAluno.setText(""); //Limpa o campo de email } //Checa o campo Nome campo = jTextFieldNomeAluno.getText(); if (("".equals(campo)) || (campo.length() > 40)) { valido = false; msgErro += "Nome invlido. O campo deve no deve ser nulo e deve ser menor que 40 caracteres\n"; jTextFieldNomeAluno.setText("");// Limpa o campo de nome } //Checa o campo CPF campo = jFormattedTextFieldCpfAluno.getText(); if (campo.replaceAll("[^0123456789]", "").length() != 11) { valido = false; msgErro += "CPF invlido. O campo deve ter apenas nmeros e deve ser na forma 123.123.123-99\n"; jFormattedTextFieldCpfAluno.setValue(null); ; //Limpa campo CPF } //Checa o campo login campo = jTextFieldLoginAluno.getText(); if ((campo.length() < 10) && !("".equals(campo))) { //Campo possivelmente vlido //Checar unicidade //INFO: Cdigo Legado modificado. if ((flagAnterior == INSERIR) || (!campo.equals(alunoAlterar.getLogin()))) { try { EntityManagerFactory emf = Persistence.createEntityManagerFactory("AcademiaVisualPU"); AlunoJpaController alunoJpaController = new AlunoJpaController(emf); Aluno resultado = (Aluno) alunoJpaController.findLogin(campo); if (resultado != null) { //Encontrou um login identico valido = false; msgErro += "Login invlido. O campo deve ser nico\n"; jTextFieldLoginAluno.setText(""); } } catch (Exception e) { //TODO: Definir melhor qual tipo de exceo lanada e.printStackTrace(); } } } else { valido = false; msgErro += "Login invlido. O campo no deve ser nulo e deve ser menor que 10 caracteres\n"; jTextFieldNomeAluno.setText(""); } //Checa o campo password campo = String.valueOf(jPasswordFieldSenhaAluno.getPassword()); if ((campo.length() < 6) || (campo.length() > 15)) { valido = false; msgErro += "Senha invlida. O campo deve ter pelo menos 6 caracteres, mas no mais que 15\n"; jPasswordFieldSenhaAluno.setText(""); } //Checa o campo endereo campo = jTextFieldEnderecoAluno.getText(); if (("".equals(campo)) || (campo.length() > 40)) { valido = false; msgErro += "Endereo invlido. O campo deve no deve ser nulo e deve ser menor que 40 caracteres\n"; jTextFieldEnderecoAluno.setText(""); } if (!valido) { JOptionPane.showMessageDialog(null, msgErro, "Campos Errados!", JOptionPane.ERROR_MESSAGE); } return valido; } private int flagAnterior; //Define qual boto foi clicado private Aluno aluno; //Enderea objetos criados private void jButtonProcurarAlunoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonProcurarAlunoActionPerformed String[] sql = { "", "SELECT a FROM Aluno a WHERE a.nome LIKE :nome ", "SELECT a FROM Aluno a WHERE a.cpf = :cpf ", "SELECT a FROM Aluno a WHERE a.validade = :validade " }; try { Query query = null; if (jTextFieldProcurarAluno.getText().length() > 0) { if (jComboBoxProcurarAluno.getSelectedIndex() == 0) { query = entityManagerAluno.createNamedQuery("Aluno.findById"); query.setParameter("id", Long.valueOf(jTextFieldProcurarAluno.getText())); } if (jComboBoxProcurarAluno.getSelectedIndex() == 1) { query = entityManagerAluno.createQuery(sql[1]); query.setParameter("nome", '%' + jTextFieldProcurarAluno.getText() + '%'); } } else { query = alunoQuery; } alunoList.clear(); alunoList.addAll(query.getResultList()); jTableAluno.updateUI(); jTableAluno.repaint(); } catch (Exception e) { JOptionPane.showMessageDialog(this, e); } }//GEN-LAST:event_jButtonProcurarAlunoActionPerformed private void jFormattedTextFieldDataAlunoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jFormattedTextFieldDataAlunoMouseClicked jFormattedTextFieldDataAluno.setText(""); }//GEN-LAST:event_jFormattedTextFieldDataAlunoMouseClicked private void jFormattedTextFieldValidadeAlunoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jFormattedTextFieldValidadeAlunoMouseClicked jFormattedTextFieldValidadeAluno.setText(""); }//GEN-LAST:event_jFormattedTextFieldValidadeAlunoMouseClicked private void jFormattedTextFieldUltimaEntradaAlunoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jFormattedTextFieldUltimaEntradaAlunoMouseClicked jFormattedTextFieldUltimaEntradaAluno.setText(""); }//GEN-LAST:event_jFormattedTextFieldUltimaEntradaAlunoMouseClicked private void jButtonInserirAlunoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonInserirAlunoActionPerformed flagAnterior = INSERIR; popularCamposAlterar(null); jFormattedTextFieldUltimaEntradaAluno.setValue(new Date()); abaAlterar(); }//GEN-LAST:event_jButtonInserirAlunoActionPerformed private void jButtonAlterarAlunoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAlterarAlunoActionPerformed if (!alunoList.isEmpty() && jTableAluno.getSelectedRow() != -1) { flagAnterior = ALTERAR; alunoAlterar = alunoList.get(jTableAluno.getSelectedRow()); popularCamposAlterar(alunoAlterar); abaAlterar(); } else { JOptionPane.showMessageDialog(null, "Excluso cancelada !"); } }//GEN-LAST:event_jButtonAlterarAlunoActionPerformed private void jButtonExcluirAlunoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonExcluirAlunoActionPerformed if (!alunoList.isEmpty() && jTableAluno.getSelectedRow() != -1) { int option = JOptionPane.showConfirmDialog(this, "Verifique com ateno os dados que deseja excluir!\n" + "Clique em sim se esse for mesmo o aluno que deseja excluir.\n" + "Clique em cancelar para voltar."); if (option == JOptionPane.YES_OPTION) { try { /* EXCLUIR O USUARIO DE TODOS AS TABELAS QUE UTILIZAM O MESMO ! Acho que no necessrio -- Luccas. */ alunoList.get(jTableAluno.getSelectedRow()).excluir(); alunoList.remove(jTableAluno.getSelectedRow()); jTableAluno.updateUI(); jTableAluno.repaint(); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } else { JOptionPane.showMessageDialog(null, "Excluso cancelada !"); } } else { JOptionPane.showMessageDialog(null, "Selecione um aluno !"); } }//GEN-LAST:event_jButtonExcluirAlunoActionPerformed private void jButtonFecharAlunoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFecharAlunoActionPerformed dispose(); }//GEN-LAST:event_jButtonFecharAlunoActionPerformed private void jButtonCancelarAlunoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelarAlunoActionPerformed abaConsulta(); }//GEN-LAST:event_jButtonCancelarAlunoActionPerformed private void jButtonConfirmarAlunoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonConfirmarAlunoActionPerformed boolean atualizacaoFeita = false; /*Indica que a atualizao/insero foi feita com sucesso, mantendo a aba de alterao focada. */ if (flagAnterior == INSERIR) { //Verifica se os campos esto corretos antes de modific-los. if (validacaoDeCampos()) { aluno = new Aluno(); //Cria um aluno vazio popularObjeto(aluno); //Popula o objeto //Insere o objeto no banco de dados aluno.incluir(); /*Coisas do bind: Para adicionar elemento por ultimo na tabela inserir na penultima posio tipo: list.size() - 1 -> No faz sentido, mas assim que o bind funciona... */ alunoList.add(alunoList.size() - 1, aluno); jTableAluno.repaint(); atualizacaoFeita = true; } } if (flagAnterior == ALTERAR) { //Verifica se os campos esto corretos para atualiz-los if (validacaoDeCampos()) { popularObjeto(alunoAlterar); //altera o aluno no banco de dados alunoAlterar.alterar(); jTableAluno.repaint(); atualizacaoFeita = true; } } if (atualizacaoFeita) { abaConsulta(); } }//GEN-LAST:event_jButtonConfirmarAlunoActionPerformed private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) {//GEN-FIRST:event_formInternalFrameOpened try { if (TelaInicial.verificarAdministrador()) { jButtonInserirAluno.setEnabled(false); jButtonAlterarAluno.setEnabled(false); jButtonExcluirAluno.setEnabled(false); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } }//GEN-LAST:event_formInternalFrameOpened //Flags para identificar que boto foi clicado anteriormente. private final int INSERIR = 1; private final int ALTERAR = 2; //Aluno para ser alterado private Aluno alunoAlterar; // Variables declaration - do not modify//GEN-BEGIN:variables private java.util.List<DataBase.Aluno> alunoList; private javax.persistence.Query alunoQuery; private javax.persistence.EntityManager entityManagerAluno; private javax.swing.JButton jButtonAlterarAluno; private javax.swing.JButton jButtonCancelarAluno; private javax.swing.JButton jButtonConfirmarAluno; private javax.swing.JButton jButtonExcluirAluno; private javax.swing.JButton jButtonFecharAluno; private javax.swing.JButton jButtonInserirAluno; private javax.swing.JButton jButtonProcurarAluno; private javax.swing.JCheckBox jCheckBoxSenhaAluno; private javax.swing.JComboBox jComboBoxProcurarAluno; private javax.swing.JFormattedTextField jFormattedTextFieldCpfAluno; private javax.swing.JFormattedTextField jFormattedTextFieldDataAluno; private javax.swing.JFormattedTextField jFormattedTextFieldUltimaEntradaAluno; private javax.swing.JFormattedTextField jFormattedTextFieldValidadeAluno; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabelAlturaAluno; private javax.swing.JLabel jLabelCpfAluno; private javax.swing.JLabel jLabelDataNascimentoAluno; private javax.swing.JLabel jLabelEmailAluno; private javax.swing.JLabel jLabelEnderecoAluno; private javax.swing.JLabel jLabelIdAluno; private javax.swing.JLabel jLabelLoginAluno; private javax.swing.JLabel jLabelNomeAluno; private javax.swing.JLabel jLabelPesoAluno; private javax.swing.JLabel jLabelProcurarAluno; private javax.swing.JLabel jLabelSenhaAluno; private javax.swing.JLabel jLabelValidadeAluno; private javax.swing.JPanel jPanelAlterarAluno; private javax.swing.JPanel jPanelConsultaAluno; private javax.swing.JPasswordField jPasswordFieldSenhaAluno; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTabbedPane jTabbedPaneAluno; private javax.swing.JTable jTableAluno; private javax.swing.JTextField jTextFieldAlturaAluno; private javax.swing.JTextField jTextFieldEmailAluno; private javax.swing.JTextField jTextFieldEnderecoAluno; private javax.swing.JTextField jTextFieldIdAluno; private javax.swing.JTextField jTextFieldLoginAluno; private javax.swing.JTextField jTextFieldNomeAluno; private javax.swing.JTextField jTextFieldPesoAluno; private javax.swing.JTextField jTextFieldProcurarAluno; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration//GEN-END:variables }