-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainPanel.java
executable file
·135 lines (118 loc) · 4.45 KB
/
MainPanel.java
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package se115.master;
import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
class MainPanel {
// give access to Schedule button for opening schedule window without loosing information
public Schedule schedule = new Schedule();
// give access to Assignments button for opening assignment window without loosing information
public Assignments assignments = new Assignments();
// give access to ExamCalendar button for opening exam calendar window without loosing information
public ExamCalendar examCalendar = new ExamCalendar();
final private JFrame frame = new JFrame("IUE");
private JLabel nameLbl = new JLabel(), numberLbl = new JLabel(), departmentLbl = new JLabel();
/**
* This method transfer the user information
* from Registration to MainPanel
*/
public void setInfo(String name, String number, String department) {
String space = " ";
this.nameLbl.setText(space + name);
this.numberLbl.setText(space + number);
this.departmentLbl.setText(space + department);
}
/**
* Adding panel which holds schedule,
* assignment and exam calendar buttons
*/
private JPanel setContent() {
JPanel content = new JPanel();
content.setLayout(new GridLayout(7,1));
content.setBorder(new TitledBorder(new LineBorder(Color.blue,5),
"<html><h1>Main Panel</h1></html>"));
JButton scheduleBtn = new JButton("Schedule");
JButton assignmentBtn = new JButton("Assignments");
JButton examCalendarBtn = new JButton("Exam Calendar");
JButton exitBtn = new JButton("Exit");
// Adding action to the buttons
scheduleBtn.addActionListener(new ScheduleBtnListener());
assignmentBtn.addActionListener(new AssignmentBtnListener());
examCalendarBtn.addActionListener(new ExamCalendarBtnListener());
exitBtn.addActionListener(new ExitBtnListener());
// Adding information labels into content
ArrayList<JLabel> labelHolder = new ArrayList<>(3);
labelHolder.add(nameLbl);
labelHolder.add(numberLbl);
labelHolder.add(departmentLbl);
for(JLabel i : labelHolder) {
i.setFont(new Font("Serif", Font.BOLD, 30));
content.add(i);
}
content.add(scheduleBtn);
content.add(assignmentBtn);
content.add(examCalendarBtn);
content.add(exitBtn);
return content;
}
/**
* Adding frame that contains Main Panel content
*/
public void setFrame() {
frame.setName("IUE");
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setSize(500,490);
frame.setLocationRelativeTo(null);
frame.add(setContent());
frame.setVisible(true);
}
/**
* Inner class which provide action for Exit Button
*/
private class ExitBtnListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int option = JOptionPane.showOptionDialog(frame, "Are you sure?", "Message"
, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
if(option == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
}
/**
* Inner class which provide action for Schedule Button
*/
private class ScheduleBtnListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
schedule.setFrame();
schedule.setTempMainFrame(frame);
}
}
/**
* Inner class which provide action for Exam Calendar Button
*/
private class ExamCalendarBtnListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
examCalendar.build();
examCalendar.setTempMainFrame(frame);
}
}
/**
* Inner class which provide action for Assignment Button
*/
private class AssignmentBtnListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
assignments.build();
assignments.setTempMainFrame(frame);
}
}
}