Facebook
From Tiến Anh, 11 Months ago, written in Java.
Embed
Download Paste or View Raw
Hits: 115
  1. /*
  2.  * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
  3.  * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template
  4.  */
  5. package c4_ttlophoc;
  6.  
  7. import java.awt.event.ActionListener;
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.PreparedStatement;
  11. import java.sql.ResultSet;
  12. import java.sql.SQLException;
  13. import java.sql.Statement;
  14. import java.util.ArrayList;
  15.  
  16. import javax.swing.JOptionPane;
  17. import javax.swing.JTable;
  18.  
  19. import java.awt.event.ActionEvent;
  20. import java.awt.event.MouseAdapter;
  21. import java.awt.event.MouseEvent;
  22.  
  23. /**
  24.  *
  25.  * @author kieuh
  26.  */
  27. public class TTLopHoc_Form extends javax.swing.JFrame {
  28.         /**
  29.          * Creates new form TTLopHoc_Form
  30.          */
  31.         int current = 0;
  32.  
  33.         public TTLopHoc_Form() {
  34.                 initComponents();
  35.                 LoadDataToTable();
  36.         }
  37.  
  38.         public void LoadDataToTable() {
  39.                 try {
  40.                         C4_TTLopHoc pt = new C4_TTLopHoc();
  41.                         ResultSet rs = pt.getData("LopHoc");
  42.                         int i = 0;
  43.                         while (rs.next()) {
  44.                                 tblLop.setValueAt(rs.getString("MaLop"), i, 0);
  45.                                 tblLop.setValueAt(rs.getString("TenLop"), i, 1);
  46.                                 tblLop.setValueAt(rs.getString("GiaoVienChuNhiem"), i, 2);
  47.                                 i++;
  48.                         }
  49.                         pt.Close();
  50.                 } catch (ClassNotFoundException ex) {
  51.                         JOptionPane.showMessageDialog(null, "ERROR ClassNotFoundException: " + ex.getMessage());
  52.                 } catch (SQLException ex) {
  53.                         JOptionPane.showMessageDialog(null, "ERROR SQLException: " + ex.getMessage());
  54.                 }
  55.         }
  56.  
  57.         /**
  58.          * This method is called from within the constructor to initialize the form.
  59.          * WARNING: Do NOT modify this code. The content of this method is always
  60.          * regenerated by the Form Editor.
  61.          */
  62.         @SuppressWarnings("unchecked")
  63.         // <editor-fold defaultstate="collapsed" desc="Generated
  64.         // Code">//GEN-BEGIN:initComponents
  65.         private void initComponents() {
  66.  
  67.                 jLabel1 = new javax.swing.JLabel();
  68.                 jLabel2 = new javax.swing.JLabel();
  69.                 jLabel3 = new javax.swing.JLabel();
  70.                 jLabel4 = new javax.swing.JLabel();
  71.                 tfMaLop = new javax.swing.JTextField();
  72.                 tfTenLop = new javax.swing.JTextField();
  73.                 tfGVCN = new javax.swing.JTextField();
  74.                 btnDau = new javax.swing.JButton();
  75.                 btnDau.addActionListener(new ActionListener() {
  76.                         public void actionPerformed(ActionEvent evt) {
  77.                                 vedauMouseClicked(evt);
  78.                         }
  79.                 });
  80.                 btnTruoc = new javax.swing.JButton();
  81.                 btnTruoc.addActionListener(new ActionListener() {
  82.                         public void actionPerformed(ActionEvent evt) {
  83.                                 preMouseClicked(evt);
  84.                         }
  85.                 });
  86.                 btnTiep = new javax.swing.JButton();
  87.                 btnTiep.addActionListener(new ActionListener() {
  88.                         public void actionPerformed(ActionEvent evt) {
  89.                                 nextMouseClicked(evt);
  90.                         }
  91.                 });
  92.                 btnCuoi = new javax.swing.JButton();
  93.                 btnCuoi.addActionListener(new ActionListener() {
  94.                         public void actionPerformed(ActionEvent e) {
  95.                                 lastMouseClicked(e);
  96.                         }
  97.                 });
  98.                 btnSua = new javax.swing.JButton();
  99.                 btnSua.addActionListener(new ActionListener() {
  100.                         public void actionPerformed(ActionEvent e) {
  101.                                 editMouseClicked(e);
  102.                         }
  103.                 });
  104.                 btnThoat = new javax.swing.JButton();
  105.                 btnThoat.addActionListener(new ActionListener() {
  106.                         public void actionPerformed(ActionEvent e) {
  107.                                 exitMouseClicked(e);
  108.                         }
  109.                 });
  110.                 jScrollPane1 = new javax.swing.JScrollPane();
  111.                 tblLop = new javax.swing.JTable();
  112.                 tblLop.addMouseListener(new MouseAdapter() {
  113.                         @Override
  114.                         public void mouseClicked(java.awt.event.MouseEvent evt) {
  115.                                 tblLopMouseClicked(evt);
  116.                         }
  117.                 });
  118.                 jLabel5 = new javax.swing.JLabel();
  119.                 jLabel6 = new javax.swing.JLabel();
  120.  
  121.                 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  122.  
  123.                 jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N
  124.                 jLabel1.setForeground(new java.awt.Color(255, 0, 0));
  125.                 jLabel1.setText("THÔNG TIN LỚP HỌC");
  126.  
  127.                 jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
  128.                 jLabel2.setText("Mã lớp");
  129.  
  130.                 jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
  131.                 jLabel3.setText("Tên lớp");
  132.  
  133.                 jLabel4.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
  134.                 jLabel4.setText("Giáo viên chủ nhiệm");
  135.  
  136.                 tfTenLop.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N
  137.  
  138.                 btnDau.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
  139.                 btnDau.setText("Về đầu");
  140.  
  141.                 btnTruoc.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
  142.                 btnTruoc.setText("Trước");
  143.  
  144.                 btnTiep.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
  145.                 btnTiep.setText("Tiếp");
  146.  
  147.                 btnCuoi.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
  148.                 btnCuoi.setText("Về cuối");
  149.  
  150.                 btnSua.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
  151.                 btnSua.setText("Sửa");
  152.  
  153.                 btnThoat.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
  154.                 btnThoat.setText("Thoát");
  155.  
  156.                 tblLop.setModel(new javax.swing.table.DefaultTableModel(
  157.                                 new Object[][] { { null, null, null }, { null, null, null }, { null, null, null }, { null, null, null },
  158.                                                 { null, null, null }, { null, null, null }, { null, null, null } },
  159.                                 new String[] { "Mã lớp", "Tên lớp", "Giáo viên chủ nhiệm" }));
  160.                 tblLop.setShowVerticalLines(true);
  161.                 jScrollPane1.setViewportView(tblLop);
  162.  
  163.                 jLabel5.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N
  164.                 jLabel5.setForeground(new java.awt.Color(255, 0, 0));
  165.                 jLabel5.setText("Thông tin lớp");
  166.  
  167.                 jLabel6.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N
  168.                 jLabel6.setForeground(new java.awt.Color(255, 0, 0));
  169.                 jLabel6.setText("Danh sách lớp");
  170.  
  171.                 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  172.                 getContentPane().setLayout(layout);
  173.                 layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
  174.                                 javax.swing.GroupLayout.Alignment.TRAILING,
  175.                                 layout.createSequentialGroup().addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  176.                                                 .addComponent(jLabel1).addGap(314, 314, 314))
  177.                                 .addGroup(layout.createSequentialGroup().addGroup(layout
  178.                                                 .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  179.                                                 .addGroup(layout.createSequentialGroup().addGap(87, 87, 87).addGroup(layout
  180.                                                                 .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  181.                                                                 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 656,
  182.                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)
  183.                                                                 .addGroup(layout.createSequentialGroup().addGroup(layout
  184.                                                                                 .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  185.                                                                                 .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE,
  186.                                                                                                 javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  187.                                                                                 .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, 161,
  188.                                                                                                 Short.MAX_VALUE)
  189.                                                                                 .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE,
  190.                                                                                                 javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  191.                                                                                 .addGap(18, 18, 18)
  192.                                                                                 .addGroup(layout
  193.                                                                                                 .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  194.                                                                                                 .addComponent(tfTenLop, javax.swing.GroupLayout.Alignment.LEADING,
  195.                                                                                                                 javax.swing.GroupLayout.DEFAULT_SIZE, 385, Short.MAX_VALUE)
  196.                                                                                                 .addComponent(tfMaLop, javax.swing.GroupLayout.Alignment.LEADING)
  197.                                                                                                 .addComponent(tfGVCN))
  198.                                                                                 .addGap(92, 92, 92))
  199.                                                                 .addGroup(layout.createSequentialGroup().addComponent(btnDau)
  200.                                                                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
  201.                                                                                                 javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  202.                                                                                 .addComponent(btnTruoc).addGap(46, 46, 46).addComponent(btnTiep)
  203.                                                                                 .addGap(53, 53, 53).addComponent(btnCuoi).addGap(39, 39, 39)
  204.                                                                                 .addComponent(btnSua).addGap(28, 28, 28).addComponent(btnThoat))))
  205.                                                 .addGroup(layout.createSequentialGroup().addGap(20, 20, 20)
  206.                                                                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  207.                                                                                 .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 107,
  208.                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)
  209.                                                                                 .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 115,
  210.                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE))))
  211.                                                 .addContainerGap(108, Short.MAX_VALUE)));
  212.                 layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  213.                                 .addGroup(layout.createSequentialGroup().addGap(18, 18, 18).addComponent(jLabel1).addGap(7, 7, 7)
  214.                                                 .addComponent(jLabel5).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  215.                                                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  216.                                                                 .addComponent(jLabel2).addComponent(tfMaLop, javax.swing.GroupLayout.PREFERRED_SIZE,
  217.                                                                                 javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  218.                                                 .addGap(18, 18, 18)
  219.                                                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  220.                                                                 .addComponent(jLabel3).addComponent(tfTenLop, javax.swing.GroupLayout.PREFERRED_SIZE,
  221.                                                                                 javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  222.                                                 .addGap(18, 18, 18)
  223.                                                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  224.                                                                 .addComponent(jLabel4).addComponent(tfGVCN, javax.swing.GroupLayout.PREFERRED_SIZE,
  225.                                                                                 javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  226.                                                 .addGap(18, 18, 18)
  227.                                                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  228.                                                                 .addComponent(btnTiep).addComponent(btnCuoi).addComponent(btnSua).addComponent(btnThoat)
  229.                                                                 .addComponent(btnDau).addComponent(btnTruoc))
  230.                                                 .addGap(2, 2, 2).addComponent(jLabel6)
  231.                                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jScrollPane1,
  232.                                                                 javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)
  233.                                                 .addContainerGap(27, Short.MAX_VALUE)));
  234.  
  235.                 pack();
  236.         }// </editor-fold>//GEN-END:initComponents
  237.  
  238.         private void tblLopMouseClicked(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_tblxemotoMouseClicked
  239.                 int row = tblLop.getSelectedRow();
  240.                 tfMaLop.setText(tblLop.getValueAt(row, 0).toString());
  241.                 tfTenLop.setText(tblLop.getValueAt(row, 1).toString());
  242.                 tfGVCN.setText(tblLop.getValueAt(row, 2).toString());
  243.         }
  244.  
  245.         private void vedauMouseClicked(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_tblxemotoMouseClicked
  246.                 int current = 0;
  247.                 tblLop.setRowSelectionInterval(current, current);
  248.                 tfMaLop.setText(tblLop.getValueAt(current, 0).toString());
  249.                 tfTenLop.setText(tblLop.getValueAt(current, 1).toString());
  250.                 tfGVCN.setText(tblLop.getValueAt(current, 2).toString());
  251.         }
  252.  
  253.         private void preMouseClicked(java.awt.event.ActionEvent evt) {
  254.                 int current = tblLop.getSelectedRow();
  255.                 current--;
  256.                 if (current < 0) {
  257.                         JOptionPane.showMessageDialog(null, "Đang ở đầu danh sách !");
  258.                         return;
  259.                 }
  260.                 tblLop.setRowSelectionInterval(current, current);
  261.                 tfMaLop.setText(tblLop.getValueAt(current, 0).toString());
  262.                 tfTenLop.setText(tblLop.getValueAt(current, 1).toString());
  263.                 tfGVCN.setText(tblLop.getValueAt(current, 2).toString());
  264.         }
  265.  
  266.         private void nextMouseClicked(java.awt.event.ActionEvent evt) {
  267.                 int count = 0;
  268.                 for (int row = 0; row < tblLop.getRowCount(); row++) { // duyệt qua từng dòng bằng vòng lặp for, getRowCount()
  269.                                                                                                                                 // được sử dụng để lấy tổng số dòng của JTable,
  270.                         Object value = tblLop.getValueAt(row, 0); // Lấy giá trị của ô đầu tiên của hàng đó
  271.                         if (value != null) { // Kiểm tra giá trị của ô có null hay không
  272.                                 count++; // Tăng số dòng có dữ liệu lên 1 nếu ô không phải là null
  273.                         }
  274.                 }
  275.                 int current = tblLop.getSelectedRow();
  276.                 current++;
  277.                 if (current >= count) {
  278.                         JOptionPane.showMessageDialog(null, "Đang ở cuối!");
  279.                         return;
  280.                 }
  281.                 tblLop.setRowSelectionInterval(current, current);
  282.                 tfMaLop.setText(tblLop.getValueAt(current, 0).toString());
  283.                 tfTenLop.setText(tblLop.getValueAt(current, 1).toString());
  284.                 tfGVCN.setText(tblLop.getValueAt(current, 2).toString());
  285.         }
  286.  
  287.         private void lastMouseClicked(java.awt.event.ActionEvent evt) {
  288.  
  289.                 int count = 0;
  290.                 for (int row = 0; row < tblLop.getRowCount(); row++) { // duyệt qua từng dòng bằng vòng lặp for, getRowCount()
  291.                                                                                                                                 // được sử dụng để lấy tổng số dòng của JTable,
  292.                         Object value = tblLop.getValueAt(row, 0); // Lấy giá trị của ô đầu tiên của hàng đó
  293.                         if (value != null) { // Kiểm tra giá trị của ô có null hay không
  294.                                 count++; // Tăng số dòng có dữ liệu lên 1 nếu ô không phải là null
  295.                         }
  296.                 }
  297.                 int current = count - 1;
  298.                 tblLop.setRowSelectionInterval(current, current);
  299.                 tfMaLop.setText(tblLop.getValueAt(current, 0).toString());
  300.                 tfTenLop.setText(tblLop.getValueAt(current, 1).toString());
  301.                 tfGVCN.setText(tblLop.getValueAt(current, 2).toString());
  302.         }
  303.  
  304.         private void editMouseClicked(java.awt.event.ActionEvent evt) {
  305.                 int row = 0;
  306.                 if (tfMaLop.getText().equals("") || tfTenLop.getText().equals("") || tfGVCN.getText().equals("")) {
  307.                         JOptionPane.showMessageDialog(this, "Nhập đầy đủ thông tin !");
  308.                         tfMaLop.requestFocus();
  309.                         return;
  310.                 }
  311.                
  312.                 try {
  313.                         Class.forName("com.mysql.jdbc.Driver");//nap trinh dieu khien
  314.                     String url="jdbc:mysql://localhost:3306/qllh";//Đường dẫn vào Data Base
  315.                     Connection con=(Connection) DriverManager.getConnection(url,"root","");
  316.                     String sql = "Update LopHoc set tenlop=?, giaovienchunhiem=? where malop=?";
  317.                     PreparedStatement st = con.prepareStatement(sql);
  318.                     st.setString(1, tfTenLop.getText());
  319.                     st.setString(2, tfGVCN.getText());
  320.                     st.setString(3, tfMaLop.getText());
  321.                     row = st.executeUpdate();
  322.                     if (row > 0)        
  323.                         JOptionPane.showMessageDialog(this, "Update thành công ! ");
  324.                     else
  325.                         JOptionPane.showMessageDialog(this, "Mã lớp bạn nhập không tồn tại! ");
  326.                     con.close();
  327.                     LoadDataToTable();
  328.                     tblLop.setRowSelectionInterval(row + 1, row + 1);
  329.                    
  330.                 } catch (Exception e) {
  331.                         System.out.println(e);
  332.                         JOptionPane.showMessageDialog(this, "Error!");
  333.                 }
  334.         }
  335.  
  336.         private void exitMouseClicked(java.awt.event.ActionEvent evt) {
  337.                 System.exit(0);
  338.         }
  339.  
  340.         /**
  341.          * @param args the command line arguments
  342.          */
  343.         public static void main(String args[]) {
  344.                 /* Set the Nimbus look and feel */
  345.                 // <editor-fold defaultstate="collapsed" desc=" Look and feel setting code
  346.                 // (optional) ">
  347.                 /*
  348.                  * If Nimbus (introduced in Java SE 6) is not available, stay with the default
  349.                  * look and feel. For details see
  350.                  * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  351.                  */
  352.                 try {
  353.                         for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  354.                                 if ("Nimbus".equals(info.getName())) {
  355.                                         javax.swing.UIManager.setLookAndFeel(info.getClassName());
  356.                                         break;
  357.                                 }
  358.                         }
  359.                 } catch (ClassNotFoundException ex) {
  360.                         java.util.logging.Logger.getLogger(TTLopHoc_Form.class.getName()).log(java.util.logging.Level.SEVERE, null,
  361.                                         ex);
  362.                 } catch (InstantiationException ex) {
  363.                         java.util.logging.Logger.getLogger(TTLopHoc_Form.class.getName()).log(java.util.logging.Level.SEVERE, null,
  364.                                         ex);
  365.                 } catch (IllegalAccessException ex) {
  366.                         java.util.logging.Logger.getLogger(TTLopHoc_Form.class.getName()).log(java.util.logging.Level.SEVERE, null,
  367.                                         ex);
  368.                 } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  369.                         java.util.logging.Logger.getLogger(TTLopHoc_Form.class.getName()).log(java.util.logging.Level.SEVERE, null,
  370.                                         ex);
  371.                 }
  372.                 // </editor-fold>
  373.  
  374.                 /* Create and display the form */
  375.                 java.awt.EventQueue.invokeLater(new Runnable() {
  376.                         public void run() {
  377.                                 new TTLopHoc_Form().setVisible(true);
  378.                         }
  379.                 });
  380.         }
  381.  
  382.         // Variables declaration - do not modify//GEN-BEGIN:variables
  383.         private javax.swing.JButton btnCuoi;
  384.         private javax.swing.JButton btnDau;
  385.         private javax.swing.JButton btnSua;
  386.         private javax.swing.JButton btnThoat;
  387.         private javax.swing.JButton btnTiep;
  388.         private javax.swing.JButton btnTruoc;
  389.         private javax.swing.JLabel jLabel1;
  390.         private javax.swing.JLabel jLabel2;
  391.         private javax.swing.JLabel jLabel3;
  392.         private javax.swing.JLabel jLabel4;
  393.         private javax.swing.JLabel jLabel5;
  394.         private javax.swing.JLabel jLabel6;
  395.         private javax.swing.JScrollPane jScrollPane1;
  396.         private javax.swing.JTable tblLop;
  397.         private javax.swing.JTextField tfGVCN;
  398.         private javax.swing.JTextField tfMaLop;
  399.         private javax.swing.JTextField tfTenLop;
  400.         // End of variables declaration//GEN-END:variables
  401. }
  402.