/* * 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 c4_ttlophoc; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import javax.swing.JOptionPane; import javax.swing.JTable; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; /** * * @author kieuh */ public class TTLopHoc_Form extends javax.swing.JFrame { /** * Creates new form TTLopHoc_Form */ int current = 0; public TTLopHoc_Form() { initComponents(); LoadDataToTable(); } public void LoadDataToTable() { try { C4_TTLopHoc pt = new C4_TTLopHoc(); ResultSet rs = pt.getData("LopHoc"); int i = 0; while (rs.next()) { tblLop.setValueAt(rs.getString("MaLop"), i, 0); tblLop.setValueAt(rs.getString("TenLop"), i, 1); tblLop.setValueAt(rs.getString("GiaoVienChuNhiem"), i, 2); i++; } pt.Close(); } catch (ClassNotFoundException ex) { JOptionPane.showMessageDialog(null, "ERROR ClassNotFoundException: " + ex.getMessage()); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "ERROR SQLException: " + ex.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() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); tfMaLop = new javax.swing.JTextField(); tfTenLop = new javax.swing.JTextField(); tfGVCN = new javax.swing.JTextField(); btnDau = new javax.swing.JButton(); btnDau.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { vedauMouseClicked(evt); } }); btnTruoc = new javax.swing.JButton(); btnTruoc.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { preMouseClicked(evt); } }); btnTiep = new javax.swing.JButton(); btnTiep.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { nextMouseClicked(evt); } }); btnCuoi = new javax.swing.JButton(); btnCuoi.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { lastMouseClicked(e); } }); btnSua = new javax.swing.JButton(); btnSua.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { editMouseClicked(e); } }); btnThoat = new javax.swing.JButton(); btnThoat.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { exitMouseClicked(e); } }); jScrollPane1 = new javax.swing.JScrollPane(); tblLop = new javax.swing.JTable(); tblLop.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(java.awt.event.MouseEvent evt) { tblLopMouseClicked(evt); } }); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N jLabel1.setForeground(new java.awt.Color(255, 0, 0)); jLabel1.setText("THÔNG TIN LỚP HỌC"); jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N jLabel2.setText("Mã lớp"); jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N jLabel3.setText("Tên lớp"); jLabel4.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N jLabel4.setText("Giáo viên chủ nhiệm"); tfTenLop.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N btnDau.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N btnDau.setText("Về đầu"); btnTruoc.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N btnTruoc.setText("Trước"); btnTiep.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N btnTiep.setText("Tiếp"); btnCuoi.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N btnCuoi.setText("Về cuối"); btnSua.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N btnSua.setText("Sửa"); btnThoat.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N btnThoat.setText("Thoát"); tblLop.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 } }, new String[] { "Mã lớp", "Tên lớp", "Giáo viên chủ nhiệm" })); tblLop.setShowVerticalLines(true); jScrollPane1.setViewportView(tblLop); jLabel5.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel5.setForeground(new java.awt.Color(255, 0, 0)); jLabel5.setText("Thông tin lớp"); jLabel6.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel6.setForeground(new java.awt.Color(255, 0, 0)); jLabel6.setText("Danh sách lớp"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1).addGap(314, 314, 314)) .addGroup(layout.createSequentialGroup().addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(87, 87, 87).addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 656, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup().addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, 161, Short.MAX_VALUE) .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(18, 18, 18) .addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(tfTenLop, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 385, Short.MAX_VALUE) .addComponent(tfMaLop, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(tfGVCN)) .addGap(92, 92, 92)) .addGroup(layout.createSequentialGroup().addComponent(btnDau) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnTruoc).addGap(46, 46, 46).addComponent(btnTiep) .addGap(53, 53, 53).addComponent(btnCuoi).addGap(39, 39, 39) .addComponent(btnSua).addGap(28, 28, 28).addComponent(btnThoat)))) .addGroup(layout.createSequentialGroup().addGap(20, 20, 20) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addContainerGap(108, Short.MAX_VALUE))); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(18, 18, 18).addComponent(jLabel1).addGap(7, 7, 7) .addComponent(jLabel5).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2).addComponent(tfMaLop, 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(jLabel3).addComponent(tfTenLop, 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(jLabel4).addComponent(tfGVCN, 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.CENTER) .addComponent(btnTiep).addComponent(btnCuoi).addComponent(btnSua).addComponent(btnThoat) .addComponent(btnDau).addComponent(btnTruoc)) .addGap(2, 2, 2).addComponent(jLabel6) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(27, Short.MAX_VALUE))); pack(); }// //GEN-END:initComponents private void tblLopMouseClicked(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_tblxemotoMouseClicked int row = tblLop.getSelectedRow(); tfMaLop.setText(tblLop.getValueAt(row, 0).toString()); tfTenLop.setText(tblLop.getValueAt(row, 1).toString()); tfGVCN.setText(tblLop.getValueAt(row, 2).toString()); } private void vedauMouseClicked(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_tblxemotoMouseClicked int current = 0; tblLop.setRowSelectionInterval(current, current); tfMaLop.setText(tblLop.getValueAt(current, 0).toString()); tfTenLop.setText(tblLop.getValueAt(current, 1).toString()); tfGVCN.setText(tblLop.getValueAt(current, 2).toString()); } private void preMouseClicked(java.awt.event.ActionEvent evt) { int current = tblLop.getSelectedRow(); current--; if (current < 0) { JOptionPane.showMessageDialog(null, "Đang ở đầu danh sách !"); return; } tblLop.setRowSelectionInterval(current, current); tfMaLop.setText(tblLop.getValueAt(current, 0).toString()); tfTenLop.setText(tblLop.getValueAt(current, 1).toString()); tfGVCN.setText(tblLop.getValueAt(current, 2).toString()); } private void nextMouseClicked(java.awt.event.ActionEvent evt) { int count = 0; for (int row = 0; row < tblLop.getRowCount(); row++) { // duyệt qua từng dòng bằng vòng lặp for, getRowCount() // được sử dụng để lấy tổng số dòng của JTable, Object value = tblLop.getValueAt(row, 0); // Lấy giá trị của ô đầu tiên của hàng đó if (value != null) { // Kiểm tra giá trị của ô có null hay không count++; // Tăng số dòng có dữ liệu lên 1 nếu ô không phải là null } } int current = tblLop.getSelectedRow(); current++; if (current >= count) { JOptionPane.showMessageDialog(null, "Đang ở cuối!"); return; } tblLop.setRowSelectionInterval(current, current); tfMaLop.setText(tblLop.getValueAt(current, 0).toString()); tfTenLop.setText(tblLop.getValueAt(current, 1).toString()); tfGVCN.setText(tblLop.getValueAt(current, 2).toString()); } private void lastMouseClicked(java.awt.event.ActionEvent evt) { int count = 0; for (int row = 0; row < tblLop.getRowCount(); row++) { // duyệt qua từng dòng bằng vòng lặp for, getRowCount() // được sử dụng để lấy tổng số dòng của JTable, Object value = tblLop.getValueAt(row, 0); // Lấy giá trị của ô đầu tiên của hàng đó if (value != null) { // Kiểm tra giá trị của ô có null hay không count++; // Tăng số dòng có dữ liệu lên 1 nếu ô không phải là null } } int current = count - 1; tblLop.setRowSelectionInterval(current, current); tfMaLop.setText(tblLop.getValueAt(current, 0).toString()); tfTenLop.setText(tblLop.getValueAt(current, 1).toString()); tfGVCN.setText(tblLop.getValueAt(current, 2).toString()); } private void editMouseClicked(java.awt.event.ActionEvent evt) { int row = 0; if (tfMaLop.getText().equals("") || tfTenLop.getText().equals("") || tfGVCN.getText().equals("")) { JOptionPane.showMessageDialog(this, "Nhập đầy đủ thông tin !"); tfMaLop.requestFocus(); return; } try { Class.forName("com.mysql.jdbc.Driver");//nap trinh dieu khien String url="jdbc:mysql://localhost:3306/qllh";//Đường dẫn vào Data Base Connection con=(Connection) DriverManager.getConnection(url,"root",""); String sql = "Update LopHoc set tenlop=?, giaovienchunhiem=? where malop=?"; PreparedStatement st = con.prepareStatement(sql); st.setString(1, tfTenLop.getText()); st.setString(2, tfGVCN.getText()); st.setString(3, tfMaLop.getText()); row = st.executeUpdate(); if (row > 0) JOptionPane.showMessageDialog(this, "Update thành công ! "); else JOptionPane.showMessageDialog(this, "Mã lớp bạn nhập không tồn tại! "); con.close(); LoadDataToTable(); tblLop.setRowSelectionInterval(row + 1, row + 1); } catch (Exception e) { System.out.println(e); JOptionPane.showMessageDialog(this, "Error!"); } } private void exitMouseClicked(java.awt.event.ActionEvent evt) { System.exit(0); } /** * @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(TTLopHoc_Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(TTLopHoc_Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(TTLopHoc_Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(TTLopHoc_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 TTLopHoc_Form().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnCuoi; private javax.swing.JButton btnDau; private javax.swing.JButton btnSua; private javax.swing.JButton btnThoat; private javax.swing.JButton btnTiep; private javax.swing.JButton btnTruoc; 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.JScrollPane jScrollPane1; private javax.swing.JTable tblLop; private javax.swing.JTextField tfGVCN; private javax.swing.JTextField tfMaLop; private javax.swing.JTextField tfTenLop; // End of variables declaration//GEN-END:variables }