package gradertool.curve; import javax.swing.*; import java.awt.*; import java.awt.event.*; /** * Set Find Gaps Window GUI based on section 2.6.3.2 of the requirements. */ public class SetFindGaps extends JFrame { /** * Constructor of set find gaps curve GUI. */ public SetFindGaps() { Box whole = new Box(BoxLayout.Y_AXIS); Box gapRow = new Box(BoxLayout.X_AXIS); gapRow.setMaximumSize(new Dimension(100, 40)); JLabel gapLab = new JLabel("Gap List:"); gapLab.setFont(new Font("Arial", Font.BOLD, 20)); gapRow.add(gapLab); Box fill; whole.add(gapRow); Box rows = new Box(BoxLayout.Y_AXIS); Box row = new Box(BoxLayout.X_AXIS); row.setMaximumSize(new Dimension(589, 30)); JTextField t = new JTextField("96-99%"); t.setMaximumSize(new Dimension(100, 30)); row.add(t); row.add(new JSeparator(SwingConstants.HORIZONTAL)); row.add(new JToggleButton("A")); row.add(new JToggleButton("B")); row.add(new JToggleButton("C")); row.add(new JToggleButton("D")); row.add(new JToggleButton("F")); rows.add(row); fill = new Box(BoxLayout.Y_AXIS); fill.setMaximumSize(new Dimension(75,20)); rows.add(fill); row = new Box(BoxLayout.X_AXIS); row.setMaximumSize(new Dimension(589, 30)); t = new JTextField("83-89%"); t.setMaximumSize(new Dimension(100, 30)); row.add(t); row.add(new JSeparator(SwingConstants.HORIZONTAL)); row.add(new JToggleButton("A")); row.add(new JToggleButton("B")); row.add(new JToggleButton("C")); row.add(new JToggleButton("D")); row.add(new JToggleButton("F")); rows.add(row); fill = new Box(BoxLayout.Y_AXIS); fill.setMaximumSize(new Dimension(75,20)); rows.add(fill); row = new Box(BoxLayout.X_AXIS); row.setMaximumSize(new Dimension(589, 30)); t = new JTextField("78-81%"); t.setMaximumSize(new Dimension(100, 30)); row.add(t); row.add(new JSeparator(SwingConstants.HORIZONTAL)); row.add(new JToggleButton("A")); row.add(new JToggleButton("B")); row.add(new JToggleButton("C")); row.add(new JToggleButton("D")); row.add(new JToggleButton("F")); rows.add(row); fill = new Box(BoxLayout.Y_AXIS); fill.setMaximumSize(new Dimension(75,20)); rows.add(fill); row = new Box(BoxLayout.X_AXIS); row.setMaximumSize(new Dimension(589, 30)); t = new JTextField("66-70%"); t.setMaximumSize(new Dimension(100, 30)); row.add(t); row.add(new JSeparator(SwingConstants.HORIZONTAL)); row.add(new JToggleButton("A")); row.add(new JToggleButton("B")); row.add(new JToggleButton("C")); row.add(new JToggleButton("D")); row.add(new JToggleButton("F")); rows.add(row); fill = new Box(BoxLayout.Y_AXIS); fill.setMaximumSize(new Dimension(75,20)); rows.add(fill); row = new Box(BoxLayout.X_AXIS); row.setMaximumSize(new Dimension(589, 30)); t = new JTextField("54-64%"); t.setMaximumSize(new Dimension(100, 30)); row.add(t); row.add(new JSeparator(SwingConstants.HORIZONTAL)); row.add(new JToggleButton("A")); row.add(new JToggleButton("B")); row.add(new JToggleButton("C")); row.add(new JToggleButton("D")); row.add(new JToggleButton("F")); rows.add(row); fill = new Box(BoxLayout.Y_AXIS); fill.setMaximumSize(new Dimension(75,20)); rows.add(fill); row = new Box(BoxLayout.X_AXIS); row.setMaximumSize(new Dimension(589, 30)); t = new JTextField("49-52%"); t.setMaximumSize(new Dimension(100, 30)); row.add(t); row.add(new JSeparator(SwingConstants.HORIZONTAL)); row.add(new JToggleButton("A")); row.add(new JToggleButton("B")); row.add(new JToggleButton("C")); row.add(new JToggleButton("D")); row.add(new JToggleButton("F")); rows.add(row); fill = new Box(BoxLayout.Y_AXIS); fill.setMaximumSize(new Dimension(75,20)); rows.add(fill); whole.add(rows); fill = new Box(BoxLayout.Y_AXIS); fill.setMaximumSize(new Dimension(75,20)); whole.add(fill); Box button = new Box(BoxLayout.X_AXIS); fill = new Box(BoxLayout.X_AXIS); fill.setMaximumSize(new Dimension(400, 28)); button.add(fill); JButton appCurve = new JButton("Apply Curve"); appCurve.setMaximumSize(new Dimension(140, 28)); appCurve.addActionListener(new ApplyCurveButtonListener()); button.add(appCurve); whole.add(button); add(whole); setSize(new Dimension(589, 408)); setTitle("Set Letter Grade--CPE 308"); setVisible(true); } /** * Action listener for clicking apply curve button. */ private class ApplyCurveButtonListener implements ActionListener { /** * Action from clicking button. * @param e clicking action. */ public void actionPerformed(ActionEvent e) { setVisible(false); } } }