/*
* 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
}