-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
78 lines (66 loc) · 3.28 KB
/
Copy pathMain.java
File metadata and controls
78 lines (66 loc) · 3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SchoolManagementSystem extends JFrame {
private JTabbedPane tabbedPane;
private JPanel studentPanel, teacherPanel, subjectPanel;
private JTable studentTable, teacherTable, subjectTable;
private DefaultTableModel studentModel, teacherModel, subjectModel;
public SchoolManagementSystem() {
setTitle("School Management System");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
tabbedPane = new JTabbedPane();
// Student Panel
studentPanel = new JPanel(new BorderLayout());
studentModel = new DefaultTableModel(new String[]{"ID", "Name", "Age", "Class"}, 0);
studentTable = new JTable(studentModel);
studentPanel.add(new JScrollPane(studentTable), BorderLayout.CENTER);
studentPanel.add(createInputPanel(studentModel, new String[]{"ID", "Name", "Age", "Class"}), BorderLayout.SOUTH);
// Teacher Panel
teacherPanel = new JPanel(new BorderLayout());
teacherModel = new DefaultTableModel(new String[]{"ID", "Name", "Subject", "Experience"}, 0);
teacherTable = new JTable(teacherModel);
teacherPanel.add(new JScrollPane(teacherTable), BorderLayout.CENTER);
teacherPanel.add(createInputPanel(teacherModel, new String[]{"ID", "Name", "Subject", "Experience"}), BorderLayout.SOUTH);
// Subject Panel
subjectPanel = new JPanel(new BorderLayout());
subjectModel = new DefaultTableModel(new String[]{"Code", "Name", "Credits"}, 0);
subjectTable = new JTable(subjectModel);
subjectPanel.add(new JScrollPane(subjectTable), BorderLayout.CENTER);
subjectPanel.add(createInputPanel(subjectModel, new String[]{"Code", "Name", "Credits"}), BorderLayout.SOUTH);
tabbedPane.addTab("Students", studentPanel);
tabbedPane.addTab("Teachers", teacherPanel);
tabbedPane.addTab("Subjects", subjectPanel);
add(tabbedPane);
}
private JPanel createInputPanel(DefaultTableModel model, String[] labels) {
JPanel panel = new JPanel(new GridLayout(labels.length + 1, 2));
JTextField[] textFields = new JTextField[labels.length];
for (int i = 0; i < labels.length; i++) {
panel.add(new JLabel(labels[i] + ":"));
textFields[i] = new JTextField();
panel.add(textFields[i]);
}
JButton addButton = new JButton("Add");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String[] rowData = new String[textFields.length];
for (int i = 0; i < textFields.length; i++) {
rowData[i] = textFields[i].getText();
textFields[i].setText("");
}
model.addRow(rowData);
}
});
panel.add(addButton);
return panel;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new SchoolManagementSystem().setVisible(true));
}
}