/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template */ package com.bd.gymmanagement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Vector; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; /** * * @author sofia */ public class Cliente extends javax.swing.JFrame { /** * Creates new form Cliente */ public Cliente() { initComponents(); Connect(); load_treinador(); table_load(); } Connection con; PreparedStatement pst; DefaultTableModel df; public void Connect() { try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost/gymmanagement", "root", ""); } catch (ClassNotFoundException ex) { Logger.getLogger(Funcionario.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) { Logger.getLogger(Funcionario.class.getName()).log(Level.SEVERE, null, ex); } } public void load_treinador() { try { pst = con.prepareStatement("select Distinct nome from treinadores"); ResultSet rs; rs = pst.executeQuery(); txttreinador2.removeAllItems(); while (rs.next()) { txttreinador2.addItem(rs.getString("nome")); } } catch (SQLException ex) { Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex); } } public void table_load() { try { pst = con.prepareStatement("select * from clientes"); ResultSet rs = pst.executeQuery(); ResultSetMetaData rd = rs.getMetaData(); int c; c = rd.getColumnCount(); df = (DefaultTableModel)jTable1.getModel(); df.setRowCount(0); while (rs.next()) { Vector v2 = new Vector(); for (int i=1; i<=c; i++) { v2.add(rs.getString("idcliente")); v2.add(rs.getString("nomecliente")); v2.add(rs.getString("datanascimento")); v2.add(rs.getString("contactocliente")); v2.add(rs.getString("generocliente")); v2.add(rs.getString("subscricao")); v2.add(rs.getString("montante")); v2.add(rs.getString("datacliente")); v2.add(rs.getString("treinador")); } df.addRow(v2); } } catch (SQLException ex) { Logger.getLogger(Funcionario.class.getName()).log(Level.SEVERE, null, ex); } } /** * 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") // //GEN-BEGIN:initComponents private void initComponents() { jPanel1 = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel(); jPanel2 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); txtnomecliente = new javax.swing.JTextPane(); jScrollPane3 = new javax.swing.JScrollPane(); txtcontacto2 = new javax.swing.JTextPane(); jScrollPane5 = new javax.swing.JScrollPane(); txtmorada2 = new javax.swing.JTextPane(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jScrollPane7 = new javax.swing.JScrollPane(); txtmontante = new javax.swing.JTextPane(); txtdn = new com.toedter.calendar.JDateChooser(); txtdataentrada2 = new com.toedter.calendar.JDateChooser(); txtgenero2 = new javax.swing.JComboBox<>(); txtsub = new javax.swing.JComboBox<>(); jLabel12 = new javax.swing.JLabel(); txttreinador2 = new javax.swing.JComboBox<>(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jScrollPane2 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jPanel1.setBackground(new java.awt.Color(0, 51, 102)); jLabel2.setFont(new java.awt.Font("Segoe UI", 1, 36)); // NOI18N jLabel2.setForeground(new java.awt.Color(255, 255, 255)); jLabel2.setText("REGISTRO CLIENTES"); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(45, 45, 45) .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(101, 101, 101)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(40, 40, 40) .addComponent(jLabel2) .addContainerGap(26, Short.MAX_VALUE)) ); jPanel2.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED)); jLabel3.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N jLabel3.setText("Nome Cliente"); jLabel5.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N jLabel5.setText("Morada"); jLabel6.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N jLabel6.setText("Género"); jLabel7.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N jLabel7.setText("Data de Nascimento"); jLabel8.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N jLabel8.setText("Contacto"); jScrollPane1.setViewportView(txtnomecliente); jScrollPane3.setViewportView(txtcontacto2); jScrollPane5.setViewportView(txtmorada2); jLabel9.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N jLabel9.setText("Montante"); jLabel10.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N jLabel10.setText("Subscrição"); jLabel11.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N jLabel11.setText("Data de Entrada"); jScrollPane7.setViewportView(txtmontante); txtgenero2.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Masculino", "Feminino" })); txtgenero2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtgenero2ActionPerformed(evt); } }); txtsub.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "mês", "1 ano", "6 meses", "3 meses" })); jLabel12.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N jLabel12.setText("Treinador"); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(34, 34, 34) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7) .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel11) .addComponent(jLabel12, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane5) .addComponent(jScrollPane7) .addComponent(txtdataentrada2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(txtgenero2, 0, 140, Short.MAX_VALUE) .addComponent(txtsub, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jScrollPane1) .addComponent(txtdn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jScrollPane3) .addComponent(txttreinador2, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(60, 60, 60)) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(43, 43, 43) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel3)) .addGap(20, 20, 20) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel7) .addComponent(txtdn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel8) .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel6) .addComponent(txtgenero2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel5) .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel10) .addComponent(txtsub, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel9) .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel11) .addComponent(txtdataentrada2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel12) .addComponent(txttreinador2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(34, Short.MAX_VALUE)) ); jButton1.setText("Adicionar"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("Apagar"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null, null, null, null, null, null}, {null, null, null, null, null, null, null, null, null}, {null, null, null, null, null, null, null, null, null}, {null, null, null, null, null, null, null, null, null} }, new String [] { "Nome", "DNascimento", "Contacto", "Genero", "Morada", "Subscricao", "Montante", "DEntrada", "Treinador" } )); jTable1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jTable1MouseClicked(evt); } }); jScrollPane2.setViewportView(jTable1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(56, 56, 56) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 40, Short.MAX_VALUE) .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(16, Short.MAX_VALUE)) ); pack(); setLocationRelativeTo(null); }// //GEN-END:initComponents private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed // TODO add your handling code here: String tnome = txtnomecliente.getText(); SimpleDateFormat dn = new SimpleDateFormat("yyyy-MM-dd"); String datan = dn.format(txtdn.getDate()); String contacto2 = txtcontacto2.getText(); String genero2 = txtgenero2.getSelectedItem().toString(); String morada2 = txtmorada2.getText(); String sub = txtsub.getSelectedItem().toString(); String montante = txtmontante.getText(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String data = df.format(txtdataentrada2.getDate()); String treinador = txttreinador2.getSelectedItem().toString(); try { pst = con.prepareStatement("insert into clientes(nomecliente,datanascimento,contactocliente,generocliente,moradacliente,subscricao,montante,datacliente,treinador)values(?,?,?,?,?,?,?,?,?)"); pst.setString(1, tnome); pst.setString(2, datan); pst.setString(3, contacto2); pst.setString(4, genero2); pst.setString(5, morada2); pst.setString(6, sub); pst.setString(7, montante); pst.setString(8, data); pst.setString(9, treinador); pst.executeUpdate(); JOptionPane.showMessageDialog(null,"Cliente adicionado!!"); } catch (SQLException ex) { Logger.getLogger(Funcionario.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_jButton1ActionPerformed private void txtgenero2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtgenero2ActionPerformed // TODO add your handling code here: }//GEN-LAST:event_txtgenero2ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jButton2ActionPerformed private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked // TODO add your handling code here: try { df = (DefaultTableModel)jTable1.getModel(); int selected = jTable1.getSelectedRow(); int id = Integer.parseInt(df.getValueAt(selected, 0).toString()); txtnomecliente.setText(df.getValueAt(selected, 1).toString()); Date dn = new SimpleDateFormat("yyyy-MM-dd").parse((String)df.getValueAt(selected,2)); txtdn.setDate(dn); txtcontacto2.setText(df.getValueAt(selected, 3).toString()); String genero = df.getValueAt(selected, 4).toString(); txtgenero2.setSelectedItem(genero); txtmorada2.setText(df.getValueAt(selected, 5).toString()); String sub = df.getValueAt(selected, 6).toString(); txtsub.setSelectedItem(sub); txtmontante.setText(df.getValueAt(selected, 7).toString()); Date de = new SimpleDateFormat("yyyy-MM-dd").parse((String)df.getValueAt(selected,8)); txtdataentrada2.setDate(de); String treinador2 = df.getValueAt(selected, 9).toString(); txttreinador2.setSelectedItem(treinador2); jButton1.setEnabled(false); } catch (ParseException ex) { Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_jTable1MouseClicked /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ // /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ 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 ex) { java.util.logging.Logger.getLogger(Cliente.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Cliente.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Cliente.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Cliente.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } // /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Cliente().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JScrollPane jScrollPane5; private javax.swing.JScrollPane jScrollPane7; private javax.swing.JTable jTable1; private javax.swing.JTextPane txtcontacto2; private com.toedter.calendar.JDateChooser txtdataentrada2; private com.toedter.calendar.JDateChooser txtdn; private javax.swing.JComboBox txtgenero2; private javax.swing.JTextPane txtmontante; private javax.swing.JTextPane txtmorada2; private javax.swing.JTextPane txtnomecliente; private javax.swing.JComboBox txtsub; private javax.swing.JComboBox txttreinador2; // End of variables declaration//GEN-END:variables }