Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Insets;
- import java.awt.Rectangle;
- import java.io.IOException;
- import javax.swing.GroupLayout;
- import javax.swing.GroupLayout.Alignment;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JTextArea;
- import javax.swing.LayoutStyle.ComponentPlacement;
- import javax.swing.text.DefaultCaret;
- import javax.swing.JScrollPane;
- /**
- * Gui Class - Represents a gui for a multi-level feedback queue, shows what is going on.
- * @author Garrett Birch
- * @version 10/18/2019
- */
- public class Gui {
- public JFrame frame;
- public static JTextArea inputTextArea;
- public static JTextArea inputEventTextArea;
- public static JTextArea cpuTextArea;
- public static JTextArea cpuEventTextArea;
- public static JTextArea queue1TextArea;
- public static JTextArea queue2TextArea;
- public static JTextArea queue3TextArea;
- public static JTextArea queue4TextArea;
- public static JTextArea clockTextArea;
- public static JTextArea outputTextArea;
- private JLabel lblClockTick;
- private JLabel lblInput;
- private JLabel lblCpu;
- private JLabel lblQueue;
- private JLabel lblQueue_1;
- private JLabel lblQueue_2;
- private JLabel lblQueue_3;
- private JScrollPane scrollPane_1;
- private JScrollPane scrollPane_2;
- private JLabel lblTime;
- private JLabel lblPid;
- private JLabel lblCpuTimeRequired;
- private JLabel lblTime2;
- private JLabel lblPid2;
- /**
- * Default Gui constructor - Initalizes GUI and sets Frame options
- */
- public Gui() {
- initialize();
- frame.setTitle("Garrett's Queue Lab");
- frame.setVisible(true);
- }
- /**
- * All this builds a JFrame with Text Areas, Labels, ScrollPanes, etc... Formats everything you see on the Frame
- * Built using WindowBuilder in Eclipse
- */
- private void initialize() {
- frame = new JFrame();
- frame.setBounds(100, 100, 419, 532);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- inputTextArea = new JTextArea();
- inputTextArea.setForeground(Color.BLUE);
- inputTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
- inputTextArea.setMargin(new Insets(2, 5, 2, 2));
- inputTextArea.setEditable(false);
- cpuTextArea = new JTextArea();
- cpuTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
- cpuTextArea.setMargin(new Insets(2, 5, 2, 2));
- cpuTextArea.setForeground(Color.GREEN);
- cpuTextArea.setEditable(false);
- queue1TextArea = new JTextArea();
- queue1TextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
- queue1TextArea.setMargin(new Insets(2, 5, 2, 2));
- queue1TextArea.setForeground(Color.LIGHT_GRAY);
- queue1TextArea.setEditable(false);
- queue2TextArea = new JTextArea();
- queue2TextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
- queue2TextArea.setMargin(new Insets(2, 5, 2, 2));
- queue2TextArea.setForeground(Color.GRAY);
- queue2TextArea.setEditable(false);
- queue3TextArea = new JTextArea();
- queue3TextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
- queue3TextArea.setMargin(new Insets(2, 5, 2, 2));
- queue3TextArea.setForeground(Color.DARK_GRAY);
- queue3TextArea.setEditable(false);
- queue4TextArea = new JTextArea();
- queue4TextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
- queue4TextArea.setMargin(new Insets(2, 5, 2, 2));
- queue4TextArea.setForeground(Color.BLACK);
- queue4TextArea.setEditable(false);
- clockTextArea = new JTextArea();
- clockTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
- clockTextArea.setMargin(new Insets(2, 5, 2, 2));
- clockTextArea.setBounds(new Rectangle(2, 0, 0, 0));
- clockTextArea.setForeground(Color.RED);
- clockTextArea.setEditable(false);
- lblClockTick = new JLabel("Clock Tick");
- lblInput = new JLabel("Input");
- lblCpu = new JLabel("CPU");
- lblQueue = new JLabel("Queue 1");
- lblQueue_1 = new JLabel("Queue 2");
- lblQueue_2 = new JLabel("Queue 3");
- lblQueue_3 = new JLabel("Queue 4");
- JScrollPane scrollPane = new JScrollPane();
- scrollPane_1 = new JScrollPane();
- JLabel lblOutput = new JLabel(" Output");
- scrollPane_2 = new JScrollPane();
- lblTime = new JLabel("Time");
- lblPid = new JLabel("PID");
- lblCpuTimeRequired = new JLabel("Required Time");
- lblTime2 = new JLabel("Time");
- lblPid2 = new JLabel("PID");
- GroupLayout groupLayout = new GroupLayout(frame.getContentPane());
- groupLayout.setHorizontalGroup(
- groupLayout.createParallelGroup(Alignment.LEADING)
- .addGroup(groupLayout.createSequentialGroup()
- .addContainerGap()
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
- .addComponent(lblClockTick)
- .addComponent(clockTextArea, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE)
- .addGroup(groupLayout.createSequentialGroup()
- .addComponent(lblCpu, GroupLayout.PREFERRED_SIZE, 26, GroupLayout.PREFERRED_SIZE)
- .addGap(159)
- .addComponent(lblTime2)
- .addGap(48)
- .addComponent(lblPid2))
- .addGroup(groupLayout.createSequentialGroup()
- .addComponent(lblInput)
- .addGap(159)
- .addComponent(lblTime)
- .addGap(46)
- .addComponent(lblPid)
- .addGap(18)
- .addComponent(lblCpuTimeRequired))
- .addGroup(groupLayout.createSequentialGroup()
- .addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
- .addComponent(queue1TextArea, GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)
- .addComponent(lblQueue, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)
- .addComponent(cpuTextArea, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)
- .addComponent(inputTextArea, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE))
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
- .addGroup(groupLayout.createSequentialGroup()
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
- .addComponent(lblQueue_1, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)
- .addComponent(queue2TextArea, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
- .addComponent(lblQueue_2, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)
- .addComponent(queue3TextArea, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE))
- .addGap(8)
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
- .addComponent(queue4TextArea, GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)
- .addComponent(lblQueue_3, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)))
- .addGroup(groupLayout.createSequentialGroup()
- .addGap(36)
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
- .addComponent(scrollPane_1)
- .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 255, Short.MAX_VALUE))))
- .addGap(181)))
- .addGap(19))
- .addGroup(groupLayout.createSequentialGroup()
- .addGap(171)
- .addComponent(lblOutput, GroupLayout.PREFERRED_SIZE, 51, GroupLayout.PREFERRED_SIZE)
- .addContainerGap(370, Short.MAX_VALUE))
- .addGroup(groupLayout.createSequentialGroup()
- .addGap(19)
- .addComponent(scrollPane_2, GroupLayout.PREFERRED_SIZE, 364, GroupLayout.PREFERRED_SIZE)
- .addContainerGap(209, Short.MAX_VALUE))
- );
- groupLayout.setVerticalGroup(
- groupLayout.createParallelGroup(Alignment.TRAILING)
- .addGroup(groupLayout.createSequentialGroup()
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
- .addGroup(groupLayout.createSequentialGroup()
- .addGap(62)
- .addComponent(lblInput))
- .addGroup(groupLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(lblClockTick)
- .addGap(1)
- .addComponent(clockTextArea, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addGap(11)
- .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
- .addComponent(lblTime)
- .addComponent(lblPid)
- .addComponent(lblCpuTimeRequired))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
- .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 58, Short.MAX_VALUE)
- .addComponent(inputTextArea, GroupLayout.PREFERRED_SIZE, 58, GroupLayout.PREFERRED_SIZE))))
- .addGap(23)
- .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
- .addComponent(lblCpu)
- .addComponent(lblTime2)
- .addComponent(lblPid2))
- .addGap(1)
- .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
- .addComponent(cpuTextArea, GroupLayout.PREFERRED_SIZE, 61, GroupLayout.PREFERRED_SIZE)
- .addComponent(scrollPane_1, GroupLayout.PREFERRED_SIZE, 62, GroupLayout.PREFERRED_SIZE))
- .addGap(17)
- .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
- .addComponent(lblQueue)
- .addComponent(lblQueue_1)
- .addComponent(lblQueue_2)
- .addComponent(lblQueue_3))
- .addGap(3)
- .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
- .addComponent(queue1TextArea, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE)
- .addComponent(queue2TextArea, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE)
- .addComponent(queue4TextArea, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE)
- .addComponent(queue3TextArea, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE))
- .addGap(18)
- .addComponent(lblOutput)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(scrollPane_2, GroupLayout.PREFERRED_SIZE, 79, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- );
- outputTextArea = new JTextArea();
- scrollPane_2.setViewportView(outputTextArea);
- DefaultCaret caret = (DefaultCaret)outputTextArea.getCaret();
- caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
- cpuEventTextArea = new JTextArea();
- scrollPane_1.setViewportView(cpuEventTextArea);
- cpuEventTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
- cpuEventTextArea.setMargin(new Insets(2, 5, 2, 2));
- cpuEventTextArea.setRequestFocusEnabled(false);
- caret = (DefaultCaret)cpuEventTextArea.getCaret();
- caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
- inputEventTextArea = new JTextArea();
- scrollPane.setViewportView(inputEventTextArea);
- inputEventTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
- inputEventTextArea.setMargin(new Insets(2, 5, 2, 2));
- inputEventTextArea.setRequestFocusEnabled(false);
- caret = (DefaultCaret)inputEventTextArea.getCaret();
- caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
- caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
- frame.getContentPane().setLayout(groupLayout);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement