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. */ /** * * @author KIDDY */ import java.awt.Color; import java.sql.*; import java.text.DateFormat; import java.text.SimpleDateFormat; import javax.swing.JOptionPane; import org.joda.time.*; public class AddCustomer extends javax.swing.JFrame { /** * Creates new form AddCustomer */ public AddCustomer() { initComponents(); getContentPane().setBackground(Color.BLACK); dp_birthdate.setFormats(new String[] { "yyyy-MM-dd" }); dp_birthdate.setDate(null); AutoGenerateID auto = new AutoGenerateID(); tf_IDCustomer.setText(auto.autoIDCustomer()); } /** * 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() { 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(); tf_IDCustomer = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); tf_IDNumber = new javax.swing.JTextField(); tf_name = new javax.swing.JTextField(); tf_phone = new javax.swing.JTextField(); dp_birthdate = new org.jdesktop.swingx.JXDatePicker(); jScrollPane1 = new javax.swing.JScrollPane(); ta_address = new javax.swing.JTextArea(); btn_submit = new javax.swing.JButton(); jButton1 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setMinimumSize(new java.awt.Dimension(400, 450)); setResizable(false); setSize(new java.awt.Dimension(400, 450)); getContentPane().setLayout(null); jLabel1.setFont(new java.awt.Font("Monotype Corsiva", 1, 48)); // NOI18N jLabel1.setForeground(new java.awt.Color(255, 255, 255)); jLabel1.setText("Add Customer"); getContentPane().add(jLabel1); jLabel1.setBounds(40, 30, 290, 60); jLabel2.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel2.setForeground(new java.awt.Color(255, 255, 255)); jLabel2.setText("ID Customer"); getContentPane().add(jLabel2); jLabel2.setBounds(70, 120, 90, 15); jLabel3.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel3.setForeground(new java.awt.Color(255, 255, 255)); jLabel3.setText("ID Number"); getContentPane().add(jLabel3); jLabel3.setBounds(70, 150, 80, 15); jLabel4.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel4.setForeground(new java.awt.Color(255, 255, 255)); jLabel4.setText("Name"); getContentPane().add(jLabel4); jLabel4.setBounds(70, 180, 50, 15); jLabel5.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel5.setForeground(new java.awt.Color(255, 255, 255)); jLabel5.setText("Birthdate"); getContentPane().add(jLabel5); jLabel5.setBounds(70, 210, 70, 15); jLabel6.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel6.setForeground(new java.awt.Color(255, 255, 255)); jLabel6.setText("Phone"); getContentPane().add(jLabel6); jLabel6.setBounds(70, 240, 60, 15); tf_IDCustomer.setEditable(false); tf_IDCustomer.setText(" "); getContentPane().add(tf_IDCustomer); tf_IDCustomer.setBounds(150, 120, 166, 20); jLabel7.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel7.setForeground(new java.awt.Color(255, 255, 255)); jLabel7.setText("Address"); getContentPane().add(jLabel7); jLabel7.setBounds(70, 270, 60, 15); tf_IDNumber.setText(" "); tf_IDNumber.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { tf_IDNumberKeyTyped(evt); } }); getContentPane().add(tf_IDNumber); tf_IDNumber.setBounds(150, 150, 166, 20); tf_name.setText(" "); getContentPane().add(tf_name); tf_name.setBounds(150, 180, 166, 20); tf_phone.setText(" "); tf_phone.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { tf_phoneKeyTyped(evt); } }); getContentPane().add(tf_phone); tf_phone.setBounds(150, 240, 166, 20); dp_birthdate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dp_birthdateActionPerformed(evt); } }); dp_birthdate.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { dp_birthdateKeyTyped(evt); } }); getContentPane().add(dp_birthdate); dp_birthdate.setBounds(150, 210, 166, 22); ta_address.setColumns(20); ta_address.setRows(5); jScrollPane1.setViewportView(ta_address); getContentPane().add(jScrollPane1); jScrollPane1.setBounds(150, 270, 166, 96); btn_submit.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N btn_submit.setText("Submit"); btn_submit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn_submitActionPerformed(evt); } }); getContentPane().add(btn_submit); btn_submit.setBounds(150, 380, 80, 23); jButton1.setText("Close"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); getContentPane().add(jButton1); jButton1.setBounds(310, 10, 80, 23); pack(); }// </editor-fold>//GEN-END:initComponents private void btn_submitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_submitActionPerformed // TODO add your handling code here: if (Validation() == 0) { String idcustomer = tf_IDCustomer.getText(); String idnumber = tf_IDNumber.getText(); String name = tf_name.getText(); String phone = tf_phone.getText(); String address = ta_address.getText(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String date = df.format(dp_birthdate.getDate()); try { Koneksi kon = new Koneksi(); Connection con = kon.open(); String sql = "insert tb_cust values(?,?,?,?,?,?)"; PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, idcustomer); ps.setString(2, idnumber); ps.setString(3, name); ps.setString(4, phone); ps.setString(5, date); ps.setString(6, address); int rows = ps.executeUpdate(); if (rows != 0) { JOptionPane.showMessageDialog(this, "Data Successfully Added"); ClearForm(); } else { JOptionPane.showMessageDialog(this, "Error"); } } catch (Exception e) { System.err.println(e); } } }//GEN-LAST:event_btn_submitActionPerformed private void dp_birthdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dp_birthdateActionPerformed // TODO add your handling code here: }//GEN-LAST:event_dp_birthdateActionPerformed private void tf_IDNumberKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_tf_IDNumberKeyTyped // TODO add your handling code here: char c = evt.getKeyChar(); if (!((c >= '0') && (c <= '9') || (c == evt.VK_BACK_SPACE) || (c == evt.VK_DELETE))) { evt.consume(); } }//GEN-LAST:event_tf_IDNumberKeyTyped private void tf_phoneKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_tf_phoneKeyTyped // TODO add your handling code here: char c = evt.getKeyChar(); if (!((c >= '0') && (c <= '9') || (c == evt.VK_BACK_SPACE) || (c == evt.VK_DELETE))) { evt.consume(); } }//GEN-LAST:event_tf_phoneKeyTyped private void dp_birthdateKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_dp_birthdateKeyTyped // TODO add your handling code here: }//GEN-LAST:event_dp_birthdateKeyTyped private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed // TODO add your handling code here: this.hide(); }//GEN-LAST:event_jButton1ActionPerformed public void ClearForm() { tf_IDCustomer.setText(null); tf_IDNumber.setText(null); tf_name.setText(null); tf_phone.setText(null); ta_address.setText(null); dp_birthdate.setDate(null); AutoGenerateID auto = new AutoGenerateID(); tf_IDCustomer.setText(auto.autoIDCustomer()); } private int Validation() { int flag = 0; String error = ""; if (tf_IDCustomer.getText().equals("")) { flag = 1; error += "ID Customer cannot be blank.\n"; } if (tf_IDNumber.getText().equals("")) { flag = 1; error += "ID Number cannot be blank.\n"; } if (tf_phone.getText().equals("")) { flag = 1; error += "Phone Number cannot be blank.\n"; } if (ta_address.getText().equals("")) { flag = 1; error += "Address cannot be blank.\n"; } if (dp_birthdate.getDate() == null) { flag = 1; error += "Birthdate cannot be blank.\n"; } else { java.util.Date today = new java.util.Date(); //mengambil tanggal hari ini java.util.Date tgllahir = dp_birthdate.getDate(); int days = getDaysDiff(today, tgllahir); // tanggal lahir harus sebelum tanggal hari ini. if (today.before(tgllahir)) { flag = 1; error += "Tanggal lahir tidak valid.\n"; } // validasi cek umur dibawah 17 tahun boolean umur = isUnderSeventeenYears(tgllahir); if (umur) { flag = 1; error += "Harus 17 tahun.\n"; } } if (flag == 0) { } else { JOptionPane.showMessageDialog(this, error); } return flag; } private int getDaysDiff(java.util.Date startdate, java.util.Date enddate) { DateTime start = new DateTime(startdate.getYear(), startdate.getMonth(), startdate.getDay(), 0, 0, 0, 0); DateTime end = new DateTime(enddate.getYear(), enddate.getMonth(), enddate.getDay(), 0, 0, 0, 0); int days = Days.daysBetween(start, end).getDays(); return days; } private Boolean isUnderSeventeenYears(java.util.Date dateBirth) { Boolean res = false; if (dateBirth != null) { java.util.Date now = new java.util.Date(); int nowYear = now.getYear(); int nowMonth = now.getMonth(); int nowDate = now.getDate(); int dateYear = dateBirth.getYear(); int dateMonth = dateBirth.getMonth(); int dateDate = dateBirth.getDate(); int resYear = nowYear - dateYear; if (resYear < 17 || (resYear == 17 && nowMonth < dateMonth) || (resYear == 17 && nowMonth == dateMonth && nowDate < dateDate)) { res = true; } } return res; } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* 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(AddCustomer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(AddCustomer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(AddCustomer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(AddCustomer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new AddCustomer().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btn_submit; private org.jdesktop.swingx.JXDatePicker dp_birthdate; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; 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.JScrollPane jScrollPane1; private javax.swing.JTextArea ta_address; private javax.swing.JTextField tf_IDCustomer; private javax.swing.JTextField tf_IDNumber; private javax.swing.JTextField tf_name; private javax.swing.JTextField tf_phone; // End of variables declaration//GEN-END:variables }