33import java .awt .*;
44import java .awt .event .ActionEvent ;
55import java .awt .event .ActionListener ;
6+ import java .awt .event .MouseAdapter ;
7+ import java .awt .event .MouseEvent ;
8+ import java .net .URI ;
69import java .util .List ;
10+ import java .util .Objects ;
711
812public class JAVA_GUI {
913 private JFrame frame ;
@@ -89,7 +93,7 @@ public void actionPerformed(ActionEvent e) {
8993 String selected = (String ) option .getSelectedItem ();
9094 CPUScheduler scheduler ;
9195
92- switch (selected ) {
96+ switch (Objects . requireNonNull ( selected ) ) {
9397 case "FCFS" :
9498 scheduler = new FirstComeFirstServe ();
9599 break ;
@@ -149,10 +153,31 @@ public void actionPerformed(ActionEvent e) {
149153 }
150154 });
151155
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 );
153178
154179 panel = new JPanel (null );
155- panel .setPreferredSize (new Dimension (500 , 500 ));
180+ panel .setPreferredSize (new Dimension (500 , 520 ));
156181 panel .add (tablePanel );
157182 panel .add (addBtn );
158183 panel .add (removeBtn );
@@ -163,6 +188,9 @@ public void actionPerformed(ActionEvent e) {
163188 panel .add (tatResultLabel );
164189 panel .add (option );
165190 panel .add (computeBtn );
191+ panel .add (jLabel1 );
192+ panel .add (jLabel2 );
193+ panel .add (jlabel3 );
166194
167195 frame = new JFrame ("CPU Scheduler Simulator" );
168196 frame .setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE );
@@ -172,11 +200,17 @@ public void actionPerformed(ActionEvent e) {
172200 frame .pack ();
173201 }
174202
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+ }
175211
176212
177-
178-
179- // Customize the Panel
213+ // Customize the Panel
180214 class CustomPanel extends JPanel {
181215 private List <Event > timeline ;
182216
0 commit comments