Appendix
Appendix
Main Class
package super_new_ia;
1. Home
package super_new_ia;
import javax.swing.JOptionPane;
public home() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(110,
40, -1, -1));
jButton4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/EXIT.png"))); // NOI18N
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
getContentPane().add(jButton4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(1180, 40, -1, -1));
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/home
layout new.png"))); // NOI18N
jLabel1.setBounds(new java.awt.Rectangle(0, 0, 0, 0));
jLabel1.setMaximumSize(new java.awt.Dimension(1366, 768));
jLabel1.setMinimumSize(new java.awt.Dimension(1366, 768));
getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0,
1370, 770));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
java.util.logging.Logger.getLogger(home.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(home.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(home.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(home.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new home().setVisible(true);
}
});
}
2. Register
/*
* 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 super_new_ia;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import static javax.swing.JOptionPane.showMessageDialog;
import java.sql.*;
import javax.swing.*;
public class register extends javax.swing.JFrame {
public register() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(1366, 768));
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jButton4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/EXIT.png"))); // NOI18N
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jPanel1.add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(1180, 40, -1, -
1));
jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/SIGN
UP.png"))); // NOI18N
jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 1370, -1));
getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -
1, -1));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
try {
Class.forName("com.mysql.cj.jdbc.Driver");
try (Connection con = DriverManager.getConnection(SUrl, SUser, SPass);
PreparedStatement pst = con.prepareStatement(sql)) {
if (user.getText().isEmpty()) {
JOptionPane.showMessageDialog(new JFrame(), "Name is required", "Error",
JOptionPane.ERROR_MESSAGE);
} else if (password.getText().isEmpty()) {
JOptionPane.showMessageDialog(new JFrame(), "Password is required", "Error",
JOptionPane.ERROR_MESSAGE);
} else if (email.getText().isEmpty()) {
JOptionPane.showMessageDialog(new JFrame(), "Email is required", "Error",
JOptionPane.ERROR_MESSAGE);
} else if (sq.getSelectedItem().toString().isEmpty()) {
JOptionPane.showMessageDialog(new JFrame(), "Select the verification
question!", "Error", JOptionPane.ERROR_MESSAGE);
} else if (ans.getText().isEmpty()) {
JOptionPane.showMessageDialog(new JFrame(), "Answer the question", "Error",
JOptionPane.ERROR_MESSAGE);
} else if (address.getText().isEmpty()) {
JOptionPane.showMessageDialog(new JFrame(), "Address is required", "Error",
JOptionPane.ERROR_MESSAGE);
} else {
usr = user.getText();
pass = password.getText();
em = email.getText();
secq = sq.getSelectedItem().toString();
answer = ans.getText();
addr = address.getText();
pst.executeUpdate();
user.setText("");
password.setText("");
email.setText("");
sq.setSelectedIndex(-1);
ans.setText("");
address.setText("");
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new register().setVisible(true);
}
});
}
3. Login
/*
* 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 super_new_ia;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.*;
import super_new_ia.aboutus;
public login() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
email.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
emailActionPerformed(evt);
}
});
jPanel1.add(email, new org.netbeans.lib.awtextra.AbsoluteConstraints(568, 390, 380, -
1));
jPanel1.add(password, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 450,
380, -1));
jButton4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/EXIT.png"))); // NOI18N
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jPanel1.add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(1180, 40, -1, -
1));
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/LOGIN
2.png"))); // NOI18N
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, -20, 1420,
800));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(SUrl, SUser, SPass);
Statement stmt = con.createStatement();
String sql = "SELECT * FROM reg WHERE Email = '" + userEmail + "' AND Password
= '" + userPassword + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
if (userEmail.equals("[email protected]") && userPassword.equals("restricted")) {
dispose(); // Close the login frame
adminhome adminHomeFrame = new adminhome();
adminHomeFrame.setVisible(true); // Open the adminhome frame
} else {
dispose(); // Close the login frame
aboutus aboutusFrame = new aboutus();
aboutusFrame.setVisible(true); // Open the aboutus frame
}
} else {
JOptionPane.showMessageDialog(null, "Invalid Email or Password");
}
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new login().setVisible(true);
}
});
}
import javax.swing.JOptionPane;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public aboutus() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jButton4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/EXIT.png"))); // NOI18N
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jPanel1.add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(1180, 40, -1, -
1));
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/about
us .png"))); // NOI18N
jLabel1.setText("jLabel1");
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
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(aboutus.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(aboutus.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(aboutus.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(aboutus.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new aboutus().setVisible(true);
}
});
}
5. Main Page
/*
* 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 super_new_ia;
import javax.swing.JOptionPane;
public mainpage() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/main
page.png"))); // NOI18N
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 1366, -1));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
6. Availability
/*
* 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 super_new_ia;
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 javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public availability() {
initComponents();
tableModel = new DefaultTableModel(new String[]{"Missed Date", "Missed Subject",
"Teacher", "Substitute Date"}, 0) {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
jTable1.setModel(tableModel);
fetchDataFromDatabase();
}
tableModel.setRowCount(0);
while (resultSet.next()) {
String missedDate = resultSet.getString("missed_date");
String missedSubject = resultSet.getString("missed_subject");
String teacher = resultSet.getString("teacher");
String substituteDate = resultSet.getString("substitute_date");
tableModel.addRow(new Object[]{missedDate, missedSubject, teacher,
substituteDate});
}
resultSet.close();
statement.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error: " + e.getMessage());
}
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setLocation(new java.awt.Point(50, 118));
setMinimumSize(new java.awt.Dimension(1266, 600));
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
},
new String [] {
"Missed Date", "Missed Subject", "Teacher", "Subtitute Date"
}
));
jScrollPane1.setViewportView(jTable1);
jButton4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/EXIT.png"))); // NOI18N
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jPanel1.add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(1150, 20, -1, -
1));
jLabel1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/2.png"))); // NOI18N
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
if (resultSet.next()) {
resultSet.close();
preparedStatement.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error: " + e.getMessage());
}
/**
* @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(availability.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(availability.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(availability.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(availability.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
7. Lesson Check In
package super_new_ia;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;
import java.util.Date;
try {
PdfWriter.getInstance(document, new FileOutputStream(fileName));
document.open();
document.close();
JOptionPane.showMessageDialog(this, "Receipt saved as " + fileName, "Receipt
Saved",
JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(this, "Error saving receipt: " + e.getMessage(),
"Error",
JOptionPane.ERROR_MESSAGE);
}
}
public lessoncheckin() {
initComponents();
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setAlignmentX(0.0F);
jPanel1.setAlignmentY(0.0F);
jPanel1.setBounds(new java.awt.Rectangle(0, 0, 1266, 600));
jPanel1.setMaximumSize(new java.awt.Dimension(1266, 600));
jPanel1.setPreferredSize(new java.awt.Dimension(1266, 600));
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jButton4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/EXIT.png"))); // NOI18N
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jPanel1.add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(1180, 40, -1, -
1));
jLabel1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/3.png"))); // NOI18N
jLabel1.setText("jLabel1");
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3307/IA", "root", "");
String sql = "INSERT INTO lesson (name, email, class, absent_number, contact,
gender, materials_reason, missed_date, missed_subject, teacher, substitute_date) VALUES (?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.setString(3, classSelected);
pstmt.setString(4, absentNumber);
pstmt.setString(5, contact);
pstmt.setString(6, gender);
pstmt.setString(7, materialsReason);
pstmt.setDate(8, new java.sql.Date(missedDate.getTime()));
pstmt.setString(9, missedSubject);
pstmt.setString(10, teacher);
pstmt.setDate(11, new java.sql.Date(substituteDate.getTime()));
pstmt.executeUpdate();
jTextField1.setText("");
jTextField2.setText("");
jComboBox1.setSelectedIndex(0);
jTextField3.setText("");
jTextField4.setText("");
jComboBox2.setSelectedIndex(0);
jTextField5.setText("");
jDateChooser1.setDate(null);
jComboBox3.setSelectedIndex(0);
jComboBox4.setSelectedIndex(0);
jDateChooser2.setDate(null);
8. Admin Home
package super_new_ia;
import javax.swing.JOptionPane;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
public class adminhome extends javax.swing.JFrame {
return true;
}
}
public adminhome() { {
initComponents();
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentShown(java.awt.event.ComponentEvent evt) {
formComponentShown(evt);
}
});
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
getContentPane().add(jScrollPane1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(242, 220, 900, -1));
jButton4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/EXIT.png"))); // NOI18N
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
getContentPane().add(jButton4, new
org.netbeans.lib.awtextra.AbsoluteConstraints(1180, 40, -1, -1));
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/admin
page.png"))); // NOI18N
getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -
1, -1));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
if (selectedRowIndex != -1) {
String selectedEmailString = jTable1.getValueAt(selectedRowIndex, 1).toString();
try {
if (rowsAffected > 0) {
JOptionPane.showMessageDialog(null, "Data deleted successfully.");
refreshTable();
} else {
JOptionPane.showMessageDialog(null, "Failed to delete data.");
}
}
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Error: " + e.getMessage());
}
} else {
JOptionPane.showMessageDialog(null, "Please select a row to delete.");
}
}
try {
String SUrl = "jdbc:mysql://localhost:3307/IA";
String SUser = "root";
String SPass = "";
model.addColumn("Name");
model.addColumn("Email");
model.addColumn("SecQ");
model.addColumn("Address");
while (rs.next()) {
Object[] row = new Object[4];
row[0] = rs.getString("Name");
row[1] = rs.getString("Email");
row[2] = rs.getString("SecQ");
row[3] = rs.getString("Address");
model.addRow(row);
}
jTable1.setModel(model);
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
try {
String sql = "SELECT Name, Email, SecQ, Address FROM reg WHERE Name LIKE
'%" + searchQuery + "%' OR Email LIKE '%" + searchQuery + "%'";
ResultSet rs = stmt.executeQuery(sql);
model.addColumn("Name");
model.addColumn("Email");
model.addColumn("SecQ");
model.addColumn("Address");
while (rs.next()) {
Object[] row = new Object[4];
row[0] = rs.getString("Name");
row[1] = rs.getString("Email");
row[2] = rs.getString("SecQ");
row[3] = rs.getString("Address");
model.addRow(row);
}
jTable1.setModel(model);
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}