コード例 #1
0
  /**
   * Invoked when a mouse button was pressed.
   *
   * @param e The MouseEvent that holds all the information.
   */
  @Override
  public void mousePressed(MouseEvent e) {
    if (!e.getComponent().isEnabled()) return;

    int me = e.getButton();
    if (e.isPopupTrigger()) me = MouseEvent.BUTTON3;
    Tile tile = canvas.convertToMapTile(e.getX(), e.getY());

    switch (me) {
      case MouseEvent.BUTTON1:
        // Record initial click point for purposes of dragging
        canvas.setDragPoint(e.getX(), e.getY());
        if (canvas.isGotoStarted()) {
          PathNode path = canvas.getGotoPath();
          if (path != null) {
            canvas.stopGoto();
            // Move the unit
            freeColClient
                .getInGameController()
                .goToTile(canvas.getActiveUnit(), path.getLastNode().getTile());
          }
        } else if (doubleClickTimer.isRunning()) {
          doubleClickTimer.stop();
        } else {
          centerX = e.getX();
          centerY = e.getY();
          doubleClickTimer.start();
        }
        canvas.requestFocus();
        break;
      case MouseEvent.BUTTON2:
        if (tile != null) {
          Unit unit = canvas.getActiveUnit();
          if (unit != null && unit.getTile() != tile) {
            PathNode dragPath = unit.findPath(tile);
            canvas.startGoto();
            canvas.setGotoPath(dragPath);
          }
        }
        break;
      case MouseEvent.BUTTON3:
        // Cancel goto if one is active
        if (canvas.isGotoStarted()) canvas.stopGoto();
        canvas.showTilePopup(tile, e.getX(), e.getY());
        break;
      default:
        break;
    }
  }
コード例 #2
0
 /**
  * Invoked when a mouse button was clicked.
  *
  * @param e The MouseEvent that holds all the information.
  */
 @Override
 public void mouseClicked(MouseEvent e) {
   try {
     if (e.getClickCount() > 1) {
       Tile tile = canvas.convertToMapTile(e.getX(), e.getY());
       Colony colony = tile.getColony();
       if (colony != null) {
         if (FreeColDebugger.isInDebugMode(FreeColDebugger.DebugMode.MENUS)) {
           canvas.showForeignColony(colony);
         } else {
           canvas.showColonyPanel(colony, null);
         }
       }
     } else {
       canvas.requestFocus();
     }
   } catch (Exception ex) {
     logger.log(Level.WARNING, "Error in mouseClicked!", ex);
   }
 }
コード例 #3
0
ファイル: Sim.java プロジェクト: evanw555/NaturalSelectionSim
  public Sim(int width, int height, int blockDims) {
    Util.setBlockDims(blockDims);
    canvas = new Canvas(width * blockDims, height * blockDims);
    ents = new EntityHandler();
    map = new Map(width, height);
    map.generateRandomly(16, 6, .1);

    bottomPanel = new JPanel();
    bottomPanel.setLayout(new GridLayout(2, 5));

    showLinesSub = new JPanel(new GridLayout(2, 1));
    showLines = new JCheckBox("Show Population Lines");
    showLines.setSelected(false);

    speedPanel = new JPanel(new GridLayout(2, 1));
    label1 = new JTextField("Speed (frames/second)");
    label1.setEditable(false);
    speedPanel.add(label1);
    rate = new JSlider(JSlider.HORIZONTAL, 10, 210, 50);
    rate.setSnapToTicks(true);
    rate.setPaintTicks(true);
    rate.setPaintLabels(true);
    rate.setPaintTrack(true);
    rate.setMajorTickSpacing(50);
    rate.setMinorTickSpacing(10);
    speedPanel.add(rate);
    bottomPanel.add(speedPanel);

    label3 = new JTextField("Reproduction Qualification");
    label3.setEditable(false);
    showLinesSub.add(showLines);
    showLinesSub.add(label3);
    bottomPanel.add(showLinesSub);
    label4 = new JTextField("Environment (Map) Alteration");
    label4.setEditable(false);
    bottomPanel.add(label4);

    smoothMotion = new JCheckBox("Smooth Motion (worse pathfinding)");
    smoothMotion.setSelected(false);
    bottomPanel.add(smoothMotion);

    mutationPanel = new JPanel(new GridLayout(2, 1));
    label2 = new JTextField("Mutation Potential");
    label2.setEditable(false);
    mutationPanel.add(label2);
    mutation = new JSlider(JSlider.HORIZONTAL, 0, 250, 100);
    mutation.setSnapToTicks(true);
    mutation.setPaintTicks(true);
    mutation.setPaintLabels(true);
    mutation.setPaintTrack(true);
    mutation.setMajorTickSpacing(50);
    mutation.setMinorTickSpacing(10);
    mutationPanel.add(mutation);
    bottomPanel.add(mutationPanel);

    repQualPanel = new JPanel(new GridLayout(3, 2));
    repQualGroup = new ButtonGroup();
    repQuals = new JRadioButton[3];
    repQuals[0] = new JRadioButton("No Qualification");
    repQuals[1] = new JRadioButton("1/2 Line");
    repQuals[2] = new JRadioButton("3/4 Line");
    repQuals[2].setSelected(true);
    repQualGroup.add(repQuals[0]);
    repQualGroup.add(repQuals[1]);
    repQualGroup.add(repQuals[2]);
    repQualPanel.add(repQuals[0]);
    repQualPanel.add(repQuals[1]);
    repQualPanel.add(repQuals[2]);
    bottomPanel.add(repQualPanel);

    mapAlter = new JSlider(JSlider.HORIZONTAL, 0, 10, 2);
    mapAlter.setSnapToTicks(true);
    mapAlter.setPaintTicks(true);
    mapAlter.setPaintLabels(true);
    mapAlter.setPaintTrack(true);
    mapAlter.setMajorTickSpacing(2);
    mapAlter.setMinorTickSpacing(1);
    bottomPanel.add(mapAlter);

    credits =
        new JTextArea(
            "Created by Evan Williams\n" + "15 Sep 2012 - 21 Sep 2012\n" + "*****@*****.**");
    credits.setEditable(false);
    credits.setBackground(Color.LIGHT_GRAY);
    bottomPanel.add(credits);

    frame = new JFrame();
    frame.setTitle("Natural Selection Simulator");
    frame.addWindowListener(
        new WindowAdapter() {
          public void windowClosing(WindowEvent e) {
            System.exit(0);
          }
        });
    frame.getContentPane().add(canvas, BorderLayout.CENTER);
    frame.getContentPane().add(bottomPanel, BorderLayout.SOUTH);
    frame.pack();
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);
    frame.toFront();
    canvas.requestFocus();
    frame.setVisible(true);
  }
コード例 #4
0
ファイル: Prac.java プロジェクト: KingKCodes/Fold-Project
  public void init() {

    initCanvas();
    WindowEventListener listener = new WindowEventListener();
    this.addWindowFocusListener(listener);
    this.addWindowListener(listener);
    this.addWindowStateListener(listener);

    JPanel wrapper = new JPanel();
    wrapper.setLayout(new BoxLayout(wrapper, BoxLayout.Y_AXIS));
    wrapper.add(Box.createVerticalGlue());
    JPanel top = new JPanel();
    top.setPreferredSize(new Dimension(800, 40));
    top.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    top.setLayout(new BoxLayout(top, BoxLayout.X_AXIS));
    ImageIcon pointerIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/pointer.png"))
                .getImage()
                .getScaledInstance(40, 40, Image.SCALE_SMOOTH));
    JButton pointerButton = new JButton(pointerIcon);
    pointerButton.setMaximumSize(new Dimension(40, 30));
    pointerButton.setBorder(null);
    pointerButton.setOpaque(false);
    // pointerButton.setContentAreaFilled(false);
    pointerButton.setBorderPainted(false);
    pointerButton.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            canvas.removeAllHighlights();
            canvas.removeDrags();
            canvas.repaint();
          }
        });

    JLabel stroke = new JLabel("Stroke: ");
    JButton strokeButton = new JButton("");
    strokeButton.setPreferredSize(new Dimension(30, 25));
    strokeButton.setMinimumSize(new Dimension(30, 25));
    strokeButton.setMaximumSize(new Dimension(30, 25));
    JLabel fill = new JLabel("Fill: ");
    JButton fillButton = new JButton("");
    fillButton.setPreferredSize(new Dimension(30, 25));
    fillButton.setMinimumSize(new Dimension(30, 25));
    fillButton.setMaximumSize(new Dimension(30, 25));
    JLabel zoom = new JLabel("Zoom: ");
    JSlider slider = new JSlider(0, 100, 50);
    slider.setMaximumSize(new Dimension(200, 30));
    JButton minusMagnifier = new JButton("-");
    JButton plusMagnifier = new JButton("+");
    top.add(Box.createHorizontalGlue());
    top.add(stroke);
    top.add(strokeButton);
    top.add(Box.createRigidArea(new Dimension(50, 40)));
    top.add(fill);
    top.add(fillButton);
    top.add(Box.createRigidArea(new Dimension(100, 40)));
    top.add(zoom);
    top.add(slider);
    top.add(minusMagnifier);
    top.add(plusMagnifier);
    top.add(Box.createRigidArea(new Dimension(50, 40)));
    top.add(pointerButton);
    top.add(Box.createRigidArea(new Dimension(100, 400)));
    top.add(Box.createHorizontalGlue());

    wrapper.add(top);
    JPanel middle = new JPanel();
    middle.setLayout(new BorderLayout());
    JPanel left = new JPanel();
    left.setPreferredSize(new Dimension(200, 600));
    left.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    JPanel right = new JPanel();
    right.setPreferredSize(new Dimension(600, 600));
    right.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    middle.add(left, BorderLayout.WEST);
    middle.add(right, BorderLayout.EAST);
    wrapper.add(middle);
    JPanel bottom = new JPanel();
    bottom.setPreferredSize(new Dimension(800, 25));
    bottom.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    wrapper.add(bottom);
    add(wrapper);

    JLabel f1 = new JLabel("    Press F1 for help");
    f1.setPreferredSize(new Dimension(197, 25));
    JLabel view = new JLabel("  View");
    view.setPreferredSize(new Dimension(55, 25));
    JLabel dimensions = new JLabel(CANVAS_WIDTH + " x " + CANVAS_HEIGHT);
    dimensions.setPreferredSize(new Dimension(75, 25));
    coordinates = new JLabel("Coordinates: (" + xCord + ", " + yCord + ")");
    coordinates.setPreferredSize(new Dimension(150, 25));
    bottom.setLayout(new BoxLayout(bottom, BoxLayout.X_AXIS));
    JSeparator separator = new JSeparator(JSeparator.VERTICAL);
    JSeparator separator2 = new JSeparator(JSeparator.VERTICAL);
    JSeparator separator3 = new JSeparator(JSeparator.VERTICAL);
    bottom.add(Box.createHorizontalGlue());
    bottom.add(f1);
    bottom.add(separator);

    bottom.add(view);
    bottom.add(Box.createRigidArea(new Dimension(100, 25)));
    bottom.add(separator2);
    bottom.add(dimensions);
    bottom.add(separator3);
    bottom.add(Box.createRigidArea(new Dimension(100, 25)));
    bottom.add(coordinates);
    bottom.add(Box.createHorizontalGlue());

    right.setLayout(new BorderLayout());
    JPanel template = new JPanel();
    template.setPreferredSize(new Dimension(580, 580));
    template.setLayout(new BoxLayout(template, BoxLayout.Y_AXIS));
    template.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
    right.add(template, BorderLayout.CENTER);

    JPanel titlePanel = new JPanel();
    titlePanel.setLayout(new BoxLayout(titlePanel, BoxLayout.X_AXIS));
    titlePanel.setPreferredSize(new Dimension(580, 25));
    titlePanel.setBackground(new Color(13, 16, 59));
    title = new JLabel("Untitled");
    title.setForeground(new Color(242, 245, 230));
    // ImageIcon deleteIcon = new ImageIcon(new
    // ImageIcon(getClass().getResource("/resources/deleteIcon.png")).getImage().getScaledInstance(10,  10,  Image.SCALE_SMOOTH));
    ImageIcon deletehIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/deletehIcon.png"))
                .getImage()
                .getScaledInstance(10, 10, Image.SCALE_SMOOTH));
    JButton closeButton = new JButton(deletehIcon);
    closeButton.setBorder(null);
    closeButton.setBackground(new Color(13, 16, 59));
    closeButton.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {
            if (changesMade != 0) {
              requestClose();
            } else {
              restartCanvas();
            }
          }
        });
    // closeButton.setRolloverIcon(deletehIcon);
    titlePanel.add(Box.createHorizontalGlue());
    titlePanel.add(Box.createRigidArea(new Dimension(275, 25)));
    titlePanel.add(title);
    titlePanel.add(Box.createRigidArea(new Dimension(235, 25)));
    titlePanel.add(closeButton);
    titlePanel.add(Box.createRigidArea(new Dimension(15, 25)));
    titlePanel.add(Box.createHorizontalGlue());
    canvasCover = new JPanel();
    canvasCover.setBackground(new Color(26, 103, 150, 50));
    canvasCover.setLayout(new GridBagLayout());
    canvasCover.setPreferredSize(new Dimension(580, 580));
    canvas.setMaximumSize(new Dimension(560, 540));
    canvas.setPreferredSize(new Dimension(560, 540));
    canvas.setMinimumSize(new Dimension(560, 540));
    canvas.setBackground(Color.WHITE);
    canvas.requestFocus();
    canvasCover.add(canvas);

    template.add(Box.createVerticalGlue());
    template.add(titlePanel);
    template.add(canvasCover);
    template.add(Box.createVerticalGlue());

    // Create the Menu
    JMenuBar menubar = new JMenuBar();

    // Menu Names
    JMenu file = new JMenu("File");
    file.setMnemonic(KeyEvent.VK_F);
    JMenu help = new JMenu("Help");
    help.setMnemonic(KeyEvent.VK_H);
    JMenu edit = new JMenu("Edit");
    edit.setMnemonic(KeyEvent.VK_E);

    // Menu Items and Listeners

    ImageIcon closeIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/closeIcon.png"))
                .getImage()
                .getScaledInstance(20, 20, Image.SCALE_SMOOTH));
    ImageIcon exitIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/exitIcon.png"))
                .getImage()
                .getScaledInstance(20, 20, Image.SCALE_SMOOTH));
    ImageIcon newIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/newIcon.png"))
                .getImage()
                .getScaledInstance(20, 20, Image.SCALE_SMOOTH));
    ImageIcon saveIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/saveIcon.png"))
                .getImage()
                .getScaledInstance(20, 20, Image.SCALE_SMOOTH));
    ImageIcon openIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/openIcon.png"))
                .getImage()
                .getScaledInstance(20, 20, Image.SCALE_SMOOTH));
    ImageIcon printIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/printIcon.png"))
                .getImage()
                .getScaledInstance(20, 20, Image.SCALE_SMOOTH));

    JMenuItem closeMenuItem = new JMenuItem("Close", closeIcon);
    closeMenuItem.setMnemonic(KeyEvent.VK_W);
    closeMenuItem.setToolTipText("Close current window");
    closeMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, ActionEvent.CTRL_MASK));
    closeMenuItem.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent event) {
            if (changesMade != 0) {
              requestClose();
            } else {
              restartCanvas();
            }
          }
        });

    JMenuItem exitMenuItem = new JMenuItem("Exit", exitIcon);
    exitMenuItem.setToolTipText("Exit Application");
    exitMenuItem.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent event) {
            System.exit(0);
          }
        });

    JMenuItem newMenuItem = new JMenuItem("New", newIcon);
    newMenuItem.setMnemonic(KeyEvent.VK_N);
    newMenuItem.setToolTipText("Start a new file");
    newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
    newMenuItem.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent event) {
            restartCanvas();
            title.setText("Untitled");
          }
        });

    JMenuItem openMenuItem = new JMenuItem("Open File...", openIcon);
    openMenuItem.setMnemonic(KeyEvent.VK_O);
    openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
    openMenuItem.setToolTipText("New");
    openMenuItem.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent event) {
            open();
          }
        });

    JMenuItem saveAsMenuItem = new JMenuItem("Save As...", saveIcon);
    saveAsMenuItem.setMnemonic(KeyEvent.VK_S);
    saveAsMenuItem.setToolTipText("Save As");
    saveAsMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
    saveAsMenuItem.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent event) {
            save();
          }
        });

    JMenuItem printMenuItem = new JMenuItem("Print", printIcon);
    printMenuItem.setMnemonic(KeyEvent.VK_P);
    printMenuItem.setToolTipText("Print Current Window");
    printMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK));
    printMenuItem.addActionListener(new PrintJob());

    JMenuItem aboutMenuItem = new JMenuItem("About");
    aboutMenuItem.setMnemonic(KeyEvent.VK_A);
    aboutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK));
    aboutMenuItem.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent event) {}
        });

    JMenuItem helpMenuItem = new JMenuItem("Help");
    helpMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0));

    // Add Items to Menus
    file.add(newMenuItem);
    file.add(openMenuItem);
    file.addSeparator();
    file.add(closeMenuItem);
    file.addSeparator();
    file.add(saveAsMenuItem);
    file.addSeparator();
    file.add(printMenuItem);
    file.addSeparator();
    file.add(exitMenuItem);
    help.add(aboutMenuItem);
    help.add(helpMenuItem);

    // Add Menus
    menubar.add(file);
    menubar.add(edit);
    menubar.add(help);

    // Add Menu Bar
    setJMenuBar(menubar);

    // Side Panel
    JPanel shapePanel = new JPanel();
    shapePanel.setLayout(new BorderLayout());
    JLabel shapesLabel = new JLabel("Shapes", JLabel.CENTER);
    shapesLabel.setFont(new Font("Georgia", Font.BOLD, 14));
    shapesLabel.setBorder(new EmptyBorder(new Insets(10, 0, 10, 20)));

    JPanel shapeArea = new JPanel();
    shapeArea.setLayout(new GridLayout(2, 2, 2, 0));

    // Create the shape buttons and their icons

    squareIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/square.png"))
                .getImage()
                .getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH));
    triangleIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/triangle.png"))
                .getImage()
                .getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH));
    rectangleIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/rectangle.png"))
                .getImage()
                .getScaledInstance(45, 30, java.awt.Image.SCALE_SMOOTH));
    hexagonIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/hexagon.png"))
                .getImage()
                .getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH));
    squarehIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/squareh.png"))
                .getImage()
                .getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH));
    trianglehIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/triangleh.png"))
                .getImage()
                .getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH));
    rectanglehIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/rectangleh.png"))
                .getImage()
                .getScaledInstance(45, 30, java.awt.Image.SCALE_SMOOTH));
    hexagonhIcon =
        new ImageIcon(
            new ImageIcon(getClass().getResource("/resources/hexagonh.png"))
                .getImage()
                .getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH));

    squareButton = new JButton(squarehIcon);
    squareButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
    squareButton.setContentAreaFilled(false);
    squareButton.setPressedIcon(squarehIcon);
    squareButton.setSelectedIcon(squarehIcon);
    squareButton.setRolloverIcon(squarehIcon);
    squareButton.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            clearButtons();
            shapePressed = SQUARE;
            squareButton.setIcon(squarehIcon);
          }
        });

    triangleButton = new JButton(triangleIcon);
    triangleButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
    triangleButton.setContentAreaFilled(false);
    triangleButton.setPressedIcon(trianglehIcon);
    triangleButton.setSelectedIcon(trianglehIcon);
    triangleButton.setRolloverIcon(trianglehIcon);
    triangleButton.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            clearButtons();
            shapePressed = TRIANGLE;
            triangleButton.setIcon(trianglehIcon);
          }
        });

    rectangleButton = new JButton(rectangleIcon);
    rectangleButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
    rectangleButton.setContentAreaFilled(false);
    rectangleButton.setPressedIcon(rectanglehIcon);
    rectangleButton.setSelectedIcon(rectanglehIcon);
    rectangleButton.setRolloverIcon(rectanglehIcon);
    rectangleButton.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            clearButtons();
            shapePressed = RECTANGLE;
            rectangleButton.setIcon(rectanglehIcon);
          }
        });

    hexagonButton = new JButton(hexagonIcon);
    hexagonButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
    hexagonButton.setContentAreaFilled(false);
    hexagonButton.setPressedIcon(hexagonhIcon);
    hexagonButton.setSelectedIcon(hexagonhIcon);
    hexagonButton.setRolloverIcon(hexagonhIcon);
    hexagonButton.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            clearButtons();
            shapePressed = HEXAGON;
            hexagonButton.setIcon(hexagonhIcon);
          }
        });

    shapeArea.add(squareButton);
    shapeArea.add(triangleButton);
    shapeArea.add(rectangleButton);
    shapeArea.add(hexagonButton);

    shapePanel.add(shapesLabel, BorderLayout.NORTH);
    shapePanel.add(shapeArea);
    shapePanel.setBorder(BorderFactory.createBevelBorder(NORMAL, Color.BLACK, Color.BLACK));

    left.setLayout(new GridBagLayout());
    // left.add(Box.createVerticalGlue());
    left.add(shapePanel);
    // left.add(Box.createVerticalGlue());

    setResizable(false);
    // setSize(new Dimension(816, 726));
    // setMinimumSize(new Dimension(816, 726));
    // setMaximumSize(new Dimension(816, 726));
    // setPreferredSize(new Dimension(816, 726));
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setTitle("Fold");
    pack();
    setLocationRelativeTo(null); // pack all the components in the JFrame
    setVisible(true); // show it
    requestFocus();
  }