import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;
public class DBconnection { public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/registrationdb", "root", ""); } catch (ClassNotFoundException | SQLException e) { System.out.println("Connection error: " + e); } return conn; } }
/* * 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 */
/** * * @author nimrod / import java.sql.; import javax.swing.*; import javax.swing.table.DefaultTableModel;
public class Form extends javax.swing.JFrame {
/** * Creates new form Form */ public Form() { initComponents(); populateComboBoxes(); fetchDataToTable(); } private void populateComboBoxes() { cbDay.removeAllItems(); cbMonth.removeAllItems(); cbYear.removeAllItems();
for (int i = 1; i <= 31; i++) cbDay.addItem(String.valueOf(i)); for (int i = 1; i <= 12; i++) cbMonth.addItem(String.valueOf(i)); for (int i = 1980; i <= 2025; i++) cbYear.addItem(String.valueOf(i)); }
private Connection getConnection() throws SQLException { return DriverManager.getConnection("jdbc:mysql://localhost:3306/registrationdb", "root", ""); }
private void fetchDataToTable() { try { DefaultTableModel model = (DefaultTableModel) users.getModel(); // ← users, not jTable1 model.setRowCount(0);
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/registrationdb", "root", "");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM Reg form");
while (rs.next()) { String name = rs.getString("Name"); String id = rs.getString("ID"); String mobile = rs.getString("Mobile"); String gender = rs.getString("Gender"); String dob = rs.getString("DOB"); String address = rs.getString("Address");
model.addRow(new Object[]{name, id, mobile, gender, dob, address}); }
con.close(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error loading table: " + e.getMessage()); } }
/** * 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() {
buttonGroup1 = new javax.swing.ButtonGroup(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); jTextField3 = new javax.swing.JTextField(); jRadioButton1 = new javax.swing.JRadioButton(); jRadioButton2 = new javax.swing.JRadioButton(); cbDay = new javax.swing.JComboBox<>(); cbMonth = new javax.swing.JComboBox<>(); cbYear = new javax.swing.JComboBox<>(); jTextField4 = new javax.swing.JTextField(); jScrollPane1 = new javax.swing.JScrollPane(); users = new javax.swing.JTable(); jLabel8 = new javax.swing.JLabel(); jCheckBox1 = new javax.swing.JCheckBox(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setFont(new java.awt.Font("Wide Latin", 3, 18)); // NOI18N jLabel1.setText("REGISTRATION FORM");
jLabel2.setFont(new java.awt.Font("Segoe UI", 3, 18)); // NOI18N jLabel2.setText("Name");
jLabel3.setFont(new java.awt.Font("Segoe UI", 3, 18)); // NOI18N jLabel3.setText("ID");
jLabel4.setFont(new java.awt.Font("Segoe UI", 3, 18)); // NOI18N jLabel4.setText("Mobile");
jLabel5.setFont(new java.awt.Font("Segoe UI", 3, 18)); // NOI18N jLabel5.setText("Gender");
jLabel6.setFont(new java.awt.Font("Segoe UI", 3, 18)); // NOI18N jLabel6.setText("DOB");
jLabel7.setFont(new java.awt.Font("Segoe UI", 3, 18)); // NOI18N jLabel7.setText("Address");
jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField1ActionPerformed(evt); } });
buttonGroup1.add(jRadioButton1); jRadioButton1.setFont(new java.awt.Font("Segoe UI Semibold", 2, 14)); // NOI18N jRadioButton1.setText("Male");
buttonGroup1.add(jRadioButton2); jRadioButton2.setFont(new java.awt.Font("Segoe UI Semibold", 2, 14)); // NOI18N jRadioButton2.setText("Female");
cbDay.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
cbMonth.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
cbYear.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
users.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} }, new String [] { "Name", "ID", "Mobile", "Gender", "DOB", "Address" } ) { Class[] types = new Class [] { java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class };
public Class getColumnClass(int columnIndex) { return types [columnIndex]; } }); jScrollPane1.setViewportView(users);
jLabel8.setFont(new java.awt.Font("Segoe UI", 2, 14)); // NOI18N jLabel8.setForeground(new java.awt.Color(0, 0, 255)); jLabel8.setText("Accept terms and conditions");
jCheckBox1.setText("jCheckBox1");
jButton1.setFont(new java.awt.Font("Segoe UI Historic", 2, 18)); // NOI18N jButton1.setText("Register"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } });
jButton2.setFont(new java.awt.Font("Segoe UI Historic", 2, 18)); // NOI18N jButton2.setText("Exit"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } });
jButton3.setFont(new java.awt.Font("Segoe UI", 2, 18)); // NOI18N jButton3.setText("Delete"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } });
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(94, 94, 94) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 425, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel4) .addComponent(jLabel6)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField3) .addGroup(layout.createSequentialGroup() .addComponent(cbDay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(cbMonth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(cbYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 36, Short.MAX_VALUE)))) .addGroup(layout.createSequentialGroup() .addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jTextField4)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel5) .addGap(26, 26, 26) .addComponent(jRadioButton1) .addGap(18, 18, 18) .addComponent(jRadioButton2)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jTextField1) .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 287, Short.MAX_VALUE)))) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jButton1) .addGap(33, 33, 33) .addComponent(jButton2)) .addGroup(layout.createSequentialGroup() .addComponent(jCheckBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(57, 57, 57))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)) .addGroup(layout.createSequentialGroup() .addGap(123, 123, 123) .addComponent(jButton3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4) .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel5) .addComponent(jRadioButton1) .addComponent(jRadioButton2)) .addGap(27, 27, 27) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel6) .addComponent(cbDay, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(cbMonth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(cbYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(25, 25, 25) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel7) .addComponent(jTextField4, 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.BASELINE) .addComponent(jLabel8) .addComponent(jCheckBox1)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jButton2)) .addGap(29, 29, 29) .addComponent(jButton3)) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(0, 148, Short.MAX_VALUE)) );
pack(); }// //GEN-END:initComponents
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed System.out.println("Name entered: " + jTextField1.getText()); // TODO add your handling code here: }//GEN-LAST:event_jTextField1ActionPerformed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed // TODO add your handling code here: String name = jTextField1.getText(); String id = jTextField2.getText(); String mobile = jTextField3.getText(); String gender = jRadioButton1.isSelected() ? "Male" : "Female"; String day = cbDay.getSelectedItem().toString(); String month = cbMonth.getSelectedItem().toString(); String year = cbYear.getSelectedItem().toString(); String dob = year + "-" + month + "-" + day; // ✅ Correct MySQL DATE format String address = jTextField4.getText();
if (!jCheckBox1.isSelected()) { JOptionPane.showMessageDialog(this, "Please accept the terms and conditions."); return; }
try {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/registrationdb", "root", "");
String sql = "INSERT INTO Reg form (Name, ID, Mobile, Gender, DOB, Address) VALUES (?, ?, ?, ?, ?, ?)";
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, name);
pst.setString(2, id);
pst.setString(3, mobile);
pst.setString(4, gender);
pst.setString(5, dob); // ✅ Proper format
pst.setString(6, address);
int rowsInserted = pst.executeUpdate(); if (rowsInserted > 0) { JOptionPane.showMessageDialog(this, "User registered successfully!"); fetchDataToTable(); // ✅ Update table after successful registration }
con.close(); } catch (Exception e) { JOptionPane.showMessageDialog(this, "Database error: " + e.getMessage()); }
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed // TODO add your handling code here: System.exit(0); }//GEN-LAST:event_jButton2ActionPerformed
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed // TODO int selectedRow = users.getSelectedRow(); int selectedRow = users.getSelectedRow(); // Fix: Declare this first!
if (selectedRow == -1) { JOptionPane.showMessageDialog(this, "Please select a row to delete."); return; }
String id = users.getValueAt(selectedRow, 1).toString(); // Column 1 is ID
int confirm = JOptionPane.showConfirmDialog(this, "Are you sure you want to delete this user?", "Confirm Delete", JOptionPane.YES_NO_OPTION); if (confirm != JOptionPane.YES_OPTION) return;
try {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/registrationdb", "root", "");
String sql = "DELETE FROM Reg form WHERE ID = ?";
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, id);
int rowsDeleted = pst.executeUpdate(); if (rowsDeleted > 0) { JOptionPane.showMessageDialog(this, "User deleted successfully."); fetchDataToTable(); // Refresh the table after deletion } else { JOptionPane.showMessageDialog(this, "User not found."); }
con.close(); } catch (Exception e) { JOptionPane.showMessageDialog(this, "Error deleting user: " + e.getMessage()); } }//GEN-LAST:event_jButton3ActionPerformed
/** * @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(Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Form.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 Form().setVisible(true); } }); }
// Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JComboBox cbDay; private javax.swing.JComboBox cbMonth; private javax.swing.JComboBox cbYear; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JCheckBox jCheckBox1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JRadioButton jRadioButton1; private javax.swing.JRadioButton jRadioButton2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; public javax.swing.JTable users; // End of variables declaration//GEN-END:variables }