3
3
import java .awt .*;
4
4
import java .awt .event .ActionEvent ;
5
5
import java .awt .event .ActionListener ;
6
+ import java .awt .event .MouseAdapter ;
7
+ import java .awt .event .MouseEvent ;
8
+ import java .net .URI ;
6
9
import java .util .List ;
10
+ import java .util .Objects ;
7
11
8
12
public class JAVA_GUI {
9
13
private JFrame frame ;
@@ -89,7 +93,7 @@ public void actionPerformed(ActionEvent e) {
89
93
String selected = (String ) option .getSelectedItem ();
90
94
CPUScheduler scheduler ;
91
95
92
- switch (selected ) {
96
+ switch (Objects . requireNonNull ( selected ) ) {
93
97
case "FCFS" :
94
98
scheduler = new FirstComeFirstServe ();
95
99
break ;
@@ -149,10 +153,31 @@ public void actionPerformed(ActionEvent e) {
149
153
}
150
154
});
151
155
152
-
156
+ JLabel jLabel1 = new JLabel ();
157
+ jLabel1 .setText ("This Software is Completely free, and used to visualize the OS Process Scheduler's." );
158
+ jLabel1 .setFont (new Font ("Segoe UI" , 0 , 10 ));
159
+ jLabel1 .setBounds (100 , 480 , 390 , 10 );
160
+
161
+ JLabel jLabel2 = new JLabel ();
162
+ jLabel2 .setText ("MadeBy@ShreeGovindJee " );
163
+ jLabel2 .setFont (new Font ("Segoe UI" , 0 , 10 ));
164
+ jLabel2 .setBounds (190 , 490 , 150 , 15 );
165
+
166
+ JLabel jlabel3 = new JLabel ();
167
+ jlabel3 .setFont (new Font ("Segoe UI" , 0 , 10 ));
168
+ jlabel3 .setForeground (new Color (0 , 51 , 204 ));
169
+ jlabel3 .setText ("https://imgovindjee.github.io/site/" );
170
+ jlabel3 .setCursor (new Cursor (Cursor .HAND_CURSOR ));
171
+ jlabel3 .addMouseListener (new MouseAdapter () {
172
+ @ Override
173
+ public void mouseClicked (MouseEvent e ) {
174
+ jlabel3MouseClicked (e );
175
+ }
176
+ });
177
+ jlabel3 .setBounds (315 , 490 , 200 , 15 );
153
178
154
179
panel = new JPanel (null );
155
- panel .setPreferredSize (new Dimension (500 , 500 ));
180
+ panel .setPreferredSize (new Dimension (500 , 520 ));
156
181
panel .add (tablePanel );
157
182
panel .add (addBtn );
158
183
panel .add (removeBtn );
@@ -163,6 +188,9 @@ public void actionPerformed(ActionEvent e) {
163
188
panel .add (tatResultLabel );
164
189
panel .add (option );
165
190
panel .add (computeBtn );
191
+ panel .add (jLabel1 );
192
+ panel .add (jLabel2 );
193
+ panel .add (jlabel3 );
166
194
167
195
frame = new JFrame ("CPU Scheduler Simulator" );
168
196
frame .setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE );
@@ -172,11 +200,17 @@ public void actionPerformed(ActionEvent e) {
172
200
frame .pack ();
173
201
}
174
202
203
+ private void jlabel3MouseClicked (MouseEvent e ) {
204
+ try {
205
+ Desktop .getDesktop ().browse (new URI ("https://imgovindjee.github.io/site/" ));
206
+ } catch (Exception exception ) {
207
+ System .out .println ("[JAVA GUI] Error encountered while processing the Developer Site link." );
208
+ exception .printStackTrace (); // FOR ERROR VISUALIZATION
209
+ }
210
+ }
175
211
176
212
177
-
178
-
179
- // Customize the Panel
213
+ // Customize the Panel
180
214
class CustomPanel extends JPanel {
181
215
private List <Event > timeline ;
182
216
0 commit comments