Advertisement
Guest User

GUI

a guest
Oct 19th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.92 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.Font;
  4. import java.awt.Insets;
  5. import java.awt.Rectangle;
  6. import java.io.IOException;
  7.  
  8. import javax.swing.GroupLayout;
  9. import javax.swing.GroupLayout.Alignment;
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JTextArea;
  13. import javax.swing.LayoutStyle.ComponentPlacement;
  14. import javax.swing.text.DefaultCaret;
  15. import javax.swing.JScrollPane;
  16. /**
  17. * Gui Class - Represents a gui for a multi-level feedback queue, shows what is going on.
  18. * @author Garrett Birch
  19. * @version 10/18/2019
  20. */
  21. public class Gui {
  22.  
  23. public JFrame frame;
  24. public static JTextArea inputTextArea;
  25. public static JTextArea inputEventTextArea;
  26. public static JTextArea cpuTextArea;
  27. public static JTextArea cpuEventTextArea;
  28. public static JTextArea queue1TextArea;
  29. public static JTextArea queue2TextArea;
  30. public static JTextArea queue3TextArea;
  31. public static JTextArea queue4TextArea;
  32. public static JTextArea clockTextArea;
  33. public static JTextArea outputTextArea;
  34. private JLabel lblClockTick;
  35. private JLabel lblInput;
  36. private JLabel lblCpu;
  37. private JLabel lblQueue;
  38. private JLabel lblQueue_1;
  39. private JLabel lblQueue_2;
  40. private JLabel lblQueue_3;
  41. private JScrollPane scrollPane_1;
  42. private JScrollPane scrollPane_2;
  43. private JLabel lblTime;
  44. private JLabel lblPid;
  45. private JLabel lblCpuTimeRequired;
  46. private JLabel lblTime2;
  47. private JLabel lblPid2;
  48.  
  49.  
  50.  
  51. /**
  52. * Default Gui constructor - Initalizes GUI and sets Frame options
  53. */
  54. public Gui() {
  55. initialize();
  56. frame.setTitle("Garrett's Queue Lab");
  57. frame.setVisible(true);
  58. }
  59.  
  60. /**
  61. * All this builds a JFrame with Text Areas, Labels, ScrollPanes, etc... Formats everything you see on the Frame
  62. * Built using WindowBuilder in Eclipse
  63. */
  64. private void initialize() {
  65. frame = new JFrame();
  66. frame.setBounds(100, 100, 419, 532);
  67. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  68.  
  69. inputTextArea = new JTextArea();
  70. inputTextArea.setForeground(Color.BLUE);
  71. inputTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
  72. inputTextArea.setMargin(new Insets(2, 5, 2, 2));
  73. inputTextArea.setEditable(false);
  74.  
  75. cpuTextArea = new JTextArea();
  76. cpuTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
  77. cpuTextArea.setMargin(new Insets(2, 5, 2, 2));
  78. cpuTextArea.setForeground(Color.GREEN);
  79. cpuTextArea.setEditable(false);
  80.  
  81. queue1TextArea = new JTextArea();
  82. queue1TextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
  83. queue1TextArea.setMargin(new Insets(2, 5, 2, 2));
  84. queue1TextArea.setForeground(Color.LIGHT_GRAY);
  85. queue1TextArea.setEditable(false);
  86.  
  87. queue2TextArea = new JTextArea();
  88. queue2TextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
  89. queue2TextArea.setMargin(new Insets(2, 5, 2, 2));
  90. queue2TextArea.setForeground(Color.GRAY);
  91. queue2TextArea.setEditable(false);
  92.  
  93. queue3TextArea = new JTextArea();
  94. queue3TextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
  95. queue3TextArea.setMargin(new Insets(2, 5, 2, 2));
  96. queue3TextArea.setForeground(Color.DARK_GRAY);
  97. queue3TextArea.setEditable(false);
  98.  
  99. queue4TextArea = new JTextArea();
  100. queue4TextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
  101. queue4TextArea.setMargin(new Insets(2, 5, 2, 2));
  102. queue4TextArea.setForeground(Color.BLACK);
  103. queue4TextArea.setEditable(false);
  104.  
  105. clockTextArea = new JTextArea();
  106. clockTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
  107. clockTextArea.setMargin(new Insets(2, 5, 2, 2));
  108. clockTextArea.setBounds(new Rectangle(2, 0, 0, 0));
  109. clockTextArea.setForeground(Color.RED);
  110. clockTextArea.setEditable(false);
  111.  
  112. lblClockTick = new JLabel("Clock Tick");
  113.  
  114. lblInput = new JLabel("Input");
  115.  
  116. lblCpu = new JLabel("CPU");
  117.  
  118. lblQueue = new JLabel("Queue 1");
  119.  
  120. lblQueue_1 = new JLabel("Queue 2");
  121.  
  122. lblQueue_2 = new JLabel("Queue 3");
  123.  
  124. lblQueue_3 = new JLabel("Queue 4");
  125.  
  126. JScrollPane scrollPane = new JScrollPane();
  127.  
  128. scrollPane_1 = new JScrollPane();
  129.  
  130. JLabel lblOutput = new JLabel(" Output");
  131.  
  132. scrollPane_2 = new JScrollPane();
  133.  
  134. lblTime = new JLabel("Time");
  135.  
  136. lblPid = new JLabel("PID");
  137.  
  138. lblCpuTimeRequired = new JLabel("Required Time");
  139.  
  140. lblTime2 = new JLabel("Time");
  141.  
  142. lblPid2 = new JLabel("PID");
  143. GroupLayout groupLayout = new GroupLayout(frame.getContentPane());
  144. groupLayout.setHorizontalGroup(
  145. groupLayout.createParallelGroup(Alignment.LEADING)
  146. .addGroup(groupLayout.createSequentialGroup()
  147. .addContainerGap()
  148. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
  149. .addComponent(lblClockTick)
  150. .addComponent(clockTextArea, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE)
  151. .addGroup(groupLayout.createSequentialGroup()
  152. .addComponent(lblCpu, GroupLayout.PREFERRED_SIZE, 26, GroupLayout.PREFERRED_SIZE)
  153. .addGap(159)
  154. .addComponent(lblTime2)
  155. .addGap(48)
  156. .addComponent(lblPid2))
  157. .addGroup(groupLayout.createSequentialGroup()
  158. .addComponent(lblInput)
  159. .addGap(159)
  160. .addComponent(lblTime)
  161. .addGap(46)
  162. .addComponent(lblPid)
  163. .addGap(18)
  164. .addComponent(lblCpuTimeRequired))
  165. .addGroup(groupLayout.createSequentialGroup()
  166. .addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
  167. .addComponent(queue1TextArea, GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)
  168. .addComponent(lblQueue, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)
  169. .addComponent(cpuTextArea, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)
  170. .addComponent(inputTextArea, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE))
  171. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
  172. .addGroup(groupLayout.createSequentialGroup()
  173. .addPreferredGap(ComponentPlacement.RELATED)
  174. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
  175. .addComponent(lblQueue_1, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)
  176. .addComponent(queue2TextArea, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE))
  177. .addPreferredGap(ComponentPlacement.RELATED)
  178. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
  179. .addComponent(lblQueue_2, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)
  180. .addComponent(queue3TextArea, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE))
  181. .addGap(8)
  182. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
  183. .addComponent(queue4TextArea, GroupLayout.DEFAULT_SIZE, 89, Short.MAX_VALUE)
  184. .addComponent(lblQueue_3, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE)))
  185. .addGroup(groupLayout.createSequentialGroup()
  186. .addGap(36)
  187. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
  188. .addComponent(scrollPane_1)
  189. .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 255, Short.MAX_VALUE))))
  190. .addGap(181)))
  191. .addGap(19))
  192. .addGroup(groupLayout.createSequentialGroup()
  193. .addGap(171)
  194. .addComponent(lblOutput, GroupLayout.PREFERRED_SIZE, 51, GroupLayout.PREFERRED_SIZE)
  195. .addContainerGap(370, Short.MAX_VALUE))
  196. .addGroup(groupLayout.createSequentialGroup()
  197. .addGap(19)
  198. .addComponent(scrollPane_2, GroupLayout.PREFERRED_SIZE, 364, GroupLayout.PREFERRED_SIZE)
  199. .addContainerGap(209, Short.MAX_VALUE))
  200. );
  201. groupLayout.setVerticalGroup(
  202. groupLayout.createParallelGroup(Alignment.TRAILING)
  203. .addGroup(groupLayout.createSequentialGroup()
  204. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
  205. .addGroup(groupLayout.createSequentialGroup()
  206. .addGap(62)
  207. .addComponent(lblInput))
  208. .addGroup(groupLayout.createSequentialGroup()
  209. .addContainerGap()
  210. .addComponent(lblClockTick)
  211. .addGap(1)
  212. .addComponent(clockTextArea, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
  213. .addGap(11)
  214. .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
  215. .addComponent(lblTime)
  216. .addComponent(lblPid)
  217. .addComponent(lblCpuTimeRequired))
  218. .addPreferredGap(ComponentPlacement.RELATED)
  219. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
  220. .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 58, Short.MAX_VALUE)
  221. .addComponent(inputTextArea, GroupLayout.PREFERRED_SIZE, 58, GroupLayout.PREFERRED_SIZE))))
  222. .addGap(23)
  223. .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
  224. .addComponent(lblCpu)
  225. .addComponent(lblTime2)
  226. .addComponent(lblPid2))
  227. .addGap(1)
  228. .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
  229. .addComponent(cpuTextArea, GroupLayout.PREFERRED_SIZE, 61, GroupLayout.PREFERRED_SIZE)
  230. .addComponent(scrollPane_1, GroupLayout.PREFERRED_SIZE, 62, GroupLayout.PREFERRED_SIZE))
  231. .addGap(17)
  232. .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
  233. .addComponent(lblQueue)
  234. .addComponent(lblQueue_1)
  235. .addComponent(lblQueue_2)
  236. .addComponent(lblQueue_3))
  237. .addGap(3)
  238. .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
  239. .addComponent(queue1TextArea, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE)
  240. .addComponent(queue2TextArea, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE)
  241. .addComponent(queue4TextArea, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE)
  242. .addComponent(queue3TextArea, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE))
  243. .addGap(18)
  244. .addComponent(lblOutput)
  245. .addPreferredGap(ComponentPlacement.RELATED)
  246. .addComponent(scrollPane_2, GroupLayout.PREFERRED_SIZE, 79, GroupLayout.PREFERRED_SIZE)
  247. .addContainerGap())
  248. );
  249.  
  250. outputTextArea = new JTextArea();
  251. scrollPane_2.setViewportView(outputTextArea);
  252. DefaultCaret caret = (DefaultCaret)outputTextArea.getCaret();
  253. caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
  254.  
  255. cpuEventTextArea = new JTextArea();
  256. scrollPane_1.setViewportView(cpuEventTextArea);
  257. cpuEventTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
  258. cpuEventTextArea.setMargin(new Insets(2, 5, 2, 2));
  259. cpuEventTextArea.setRequestFocusEnabled(false);
  260. caret = (DefaultCaret)cpuEventTextArea.getCaret();
  261. caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
  262.  
  263. inputEventTextArea = new JTextArea();
  264. scrollPane.setViewportView(inputEventTextArea);
  265. inputEventTextArea.setFont(new Font("Tahoma", Font.PLAIN, 11));
  266. inputEventTextArea.setMargin(new Insets(2, 5, 2, 2));
  267. inputEventTextArea.setRequestFocusEnabled(false);
  268. caret = (DefaultCaret)inputEventTextArea.getCaret();
  269. caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
  270. caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
  271. frame.getContentPane().setLayout(groupLayout);
  272. }
  273. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement