Example usage for javax.swing JCheckBoxMenuItem addActionListener

List of usage examples for javax.swing JCheckBoxMenuItem addActionListener

Introduction

In this page you can find the example usage for javax.swing JCheckBoxMenuItem addActionListener.

Prototype

public void addActionListener(ActionListener l) 

Source Link

Document

Adds an ActionListener to the button.

Usage

From source file:org.rivalry.swingui.table.VisibleColumnsPopupMenu.java

/**
 * @param criterion Criterion.//from  w  w w . j  a v a 2  s  . c o  m
 * 
 * @return a new menu item.
 */
private JMenuItem createMenuItem(final Criterion criterion) {
    final String columnName = criterion.getName();
    final JCheckBoxMenuItem answer = new JCheckBoxMenuItem(columnName);

    final boolean isVisible = _tableModel.isColumnVisible(columnName);
    answer.setSelected(isVisible);
    answer.addActionListener(createActionListener());

    return answer;
}

From source file:org.tros.logo.swing.LogoMenuBar.java

/**
 * Constructor./*w w  w.  j  a v  a  2 s . com*/
 *
 * @param parent
 * @param controller
 * @param canvas
 */
@SuppressWarnings("OverridableMethodCallInConstructor")
public LogoMenuBar(Component parent, Controller controller, LogoCanvas canvas) {
    super(parent, controller);
    this.canvas = canvas;

    add(setupExportMenu());
    add(setupToolsMenu());
    JMenu menu = new JMenu("Logo Options");
    menu.add(setupMenu("Examples From Tortue", "logo/examples/tortue"));
    menu.add(setupMenu("Examples From ANTLR", "logo/examples/antlr"));

    final java.util.prefs.Preferences prefs = java.util.prefs.Preferences.userNodeForPackage(LogoMenuBar.class);
    final JCheckBoxMenuItem speedMenu = new JCheckBoxMenuItem("Wait for Repaint");
    boolean checked = prefs.getBoolean(WAIT_FOR_REPAINT, true);
    speedMenu.setSelected(checked);
    speedMenu.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            prefs.putBoolean(WAIT_FOR_REPAINT, speedMenu.isSelected());
        }
    });
    menu.add(speedMenu);
    add(menu);
}

From source file:processing.app.Editor.java

protected void populatePortMenu() {
    serialMenu.removeAll();/*from  ww w  . ja v a2  s .c o m*/

    String selectedPort = PreferencesData.get("serial.port");

    List<BoardPort> ports = Base.getDiscoveryManager().discovery();

    ports = platform.filterPorts(ports, PreferencesData.getBoolean("serial.ports.showall"));

    Collections.sort(ports, new Comparator<BoardPort>() {
        @Override
        public int compare(BoardPort o1, BoardPort o2) {
            return BOARD_PROTOCOLS_ORDER.indexOf(o1.getProtocol())
                    - BOARD_PROTOCOLS_ORDER.indexOf(o2.getProtocol());
        }
    });

    String lastProtocol = null;
    String lastProtocolTranslated;
    for (BoardPort port : ports) {
        if (lastProtocol == null || !port.getProtocol().equals(lastProtocol)) {
            if (lastProtocol != null) {
                serialMenu.addSeparator();
            }
            lastProtocol = port.getProtocol();

            if (BOARD_PROTOCOLS_ORDER.indexOf(port.getProtocol()) != -1) {
                lastProtocolTranslated = BOARD_PROTOCOLS_ORDER_TRANSLATIONS
                        .get(BOARD_PROTOCOLS_ORDER.indexOf(port.getProtocol()));
            } else {
                lastProtocolTranslated = port.getProtocol();
            }
            JMenuItem lastProtocolMenuItem = new JMenuItem(_(lastProtocolTranslated));
            lastProtocolMenuItem.setEnabled(false);
            serialMenu.add(lastProtocolMenuItem);
        }
        String address = port.getAddress();
        String label = port.getLabel();

        JCheckBoxMenuItem item = new JCheckBoxMenuItem(label, address.equals(selectedPort));
        item.addActionListener(new SerialMenuListener(address));
        serialMenu.add(item);
    }

    serialMenu.setEnabled(serialMenu.getMenuComponentCount() > 0);
}

From source file:savant.view.swing.FrameCommandBar.java

/**
 * Create display menu for commandBar/*from  w w  w.  j ava  2  s  . com*/
 */
private JMenu createDisplayModeMenu() {
    JMenu menu = new JMenu("Display Mode");

    //display modes
    DrawingMode[] validModes = mainTrack.getValidDrawingModes();
    modeItems = new JCheckBoxMenuItem[validModes.length];
    for (int i = 0; i < validModes.length; i++) {
        JCheckBoxMenuItem item = new JCheckBoxMenuItem(validModes[i].getDescription());
        item.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JCheckBoxMenuItem item = (JCheckBoxMenuItem) e.getSource();
                if (item.getState()) {
                    DrawingMode[] validModes = mainTrack.getValidDrawingModes();
                    for (int j = 0; j < modeItems.length; j++) {
                        if (item.getText().equals(validModes[j].getDescription())) {
                            for (TrackAdapter t : frame.getTracks()) {

                                AnalyticsAgent.log(new NameValuePair[] {
                                        new NameValuePair("track-event", "DisplayModeChanged"),
                                        new NameValuePair("track-type", t.getClass().getSimpleName()),
                                        new NameValuePair("target-mode", validModes[j].getDescription()) });

                                t.setDrawingMode(validModes[j]);
                            }
                            drawModePosition = j;
                        } else {
                            modeItems[j].setState(false);
                        }
                    }
                } else {
                    item.setState(true);
                }
            }
        });
        if (validModes[i] == mainTrack.getDrawingMode()) {
            item.setState(true);
        }
        modeItems[i] = item;
        menu.add(item);
    }

    // Determine position of current draw mode.
    DrawingMode currentMode = mainTrack.getDrawingMode();
    for (int i = 0; i < validModes.length; i++) {
        if (validModes[i].equals(currentMode)) {
            drawModePosition = i;
            break;
        }
    }

    // Allow cycling through display modes.
    graphPane.addKeyListener(new KeyAdapter() {
        @Override
        public void keyTyped(KeyEvent e) {
            //check for: Mac + Command + 'm' OR !Mac + Ctrl + 'm'
            if ((MiscUtils.MAC && e.getModifiersEx() == 256 && e.getKeyChar() == 'm')
                    || (!MiscUtils.MAC && e.getKeyChar() == '\n' && e.isControlDown())) {
                cycleDisplayMode();
            }
        }
    });
    return menu;
}

From source file:savant.view.swing.FrameCommandBar.java

private JMenu createAppearanceMenu() {
    JMenu menu = new JMenu("Appearance");
    JMenuItem item = new JMenuItem("Colour Settings...");
    item.addActionListener(new ActionListener() {
        @Override/*from  w w w  .j a v  a2s  . c  om*/
        public void actionPerformed(ActionEvent e) {
            SettingsDialog dlg = new SettingsDialog(DialogUtils.getMainWindow(), "Colour Settings",
                    new TrackColourSchemePanel(mainTrack));
            dlg.setVisible(true);
        }
    });
    menu.add(item);

    DataFormat df = mainTrack.getDataFormat();

    if (df != DataFormat.SEQUENCE) {
        scaleToFitItem = new JCheckBoxMenuItem("Scale to Fit");
        scaleToFitItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                if (scaleToFitItem.isSelected()) {
                    graphPane.setScaledToFit(true);
                } else {
                    // This check is kinda ugly, but we only want to set the interval height from the slider
                    // if we're showing intervals (i.e. not arc mode and not coverage).
                    if (intervalSlider != null && mainTrack.getDrawingMode() != DrawingMode.ARC
                            && mainTrack.getDrawingMode() != DrawingMode.ARC_PAIRED && mainTrack.getResolution(
                                    LocationController.getInstance().getRange()) == Resolution.HIGH) {
                        int h = getIntervalHeight();
                        graphPane.setUnitHeight(h);
                    }
                    graphPane.setScaledToFit(false);
                }
            }
        });
        scaleToFitItem
                .setToolTipText("If selected, the track's display will be scaled to fit the available height.");
        menu.addMenuListener(new MenuAdapter() {
            @Override
            public void menuSelected(MenuEvent me) {
                scaleToFitItem.setSelected(graphPane.isScaledToFit());
            }
        });
        menu.add(scaleToFitItem);
    }

    if (df == DataFormat.RICH_INTERVAL) {
        menu.add(new JSeparator());
        JCheckBoxMenuItem itemRGB = new JCheckBoxMenuItem("Enable ItemRGB");
        itemRGB.setState(false);
        itemRGB.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                ((RichIntervalTrack) mainTrack).toggleItemRGBEnabled();
                graphPane.setRenderForced();
                graphPane.repaint();
            }
        });
        menu.add(itemRGB);

        JCheckBoxMenuItem score = new JCheckBoxMenuItem("Enable Score");
        score.setState(false);
        score.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                ((RichIntervalTrack) mainTrack).toggleScoreEnabled();
                graphPane.setRenderForced();
                graphPane.repaint();
            }
        });
        menu.add(score);

        JCheckBoxMenuItem alternate = new JCheckBoxMenuItem("Display Alternate Name");
        alternate.setState(((RichIntervalTrack) mainTrack).isUsingAlternateName());
        alternate.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                ((RichIntervalTrack) mainTrack).toggleAlternateName();
                graphPane.setRenderForced();
                graphPane.repaint();
            }
        });
        menu.add(alternate);
    } else if (df == DataFormat.ALIGNMENT) {
        menu.add(new JSeparator());
        baseQualityItem = new JCheckBoxMenuItem("Enable Base Quality");
        baseQualityItem.setState(false);
        baseQualityItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (((BAMTrack) mainTrack).toggleBaseQualityEnabled()) {
                    mappingQualityItem.setState(false);
                }
                graphPane.setRenderForced();
                graphPane.repaint();
            }
        });
        menu.add(baseQualityItem);

        mappingQualityItem = new JCheckBoxMenuItem("Enable Mapping Quality");
        mappingQualityItem.setState(false);
        mappingQualityItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (((BAMTrack) mainTrack).toggleMappingQualityEnabled()) {
                    baseQualityItem.setState(false);
                }
                graphPane.setRenderForced();
                graphPane.repaint();
            }
        });
        menu.add(mappingQualityItem);
    }
    return menu;
}

From source file:sc.fiji.kappa.gui.KappaMenuBar.java

/**
 * Creates a menu-bar and adds menu items to it
 *//*from www . j a v  a 2s  .  c  om*/
public KappaMenuBar(Context context, KappaFrame frame) {
    context.inject(this);

    this.frame = frame;

    // File chooser for curve data
    FileNameExtensionFilter kappaFilter = new FileNameExtensionFilter("Kappa Files", "kapp");

    kappaLoad = new JFileChooser();
    kappaLoad.setFileFilter(kappaFilter);
    kappaLoad.setDialogTitle("Load Existing Curve Data");

    kappaSave = new JFileChooser();
    kappaSave.setFileFilter(kappaFilter);
    kappaSave.setDialogTitle("Save Curve Data");

    // Declares the file menu
    JMenu fileMenu = new JMenu("File");
    fileMenu.setMnemonic('F');

    /*
     * // Menu Items for file operations // Creates a new file chooser. Same native
     * image support as ImageJ since ImageJ // libraries are used. kappaOpen = new
     * JFileChooser(); FileNameExtensionFilter filter = new
     * FileNameExtensionFilter("Image Files", "tif", "tiff", "jpeg", "jpg", "bmp",
     * "fits", "pgm", "ppm", "pbm", "gif", "png", "dic", "dcm", "dicom", "lsm",
     * "avi"); kappaOpen.setFileFilter(filter);
     * 
     * JMenuItem openMenu = new JMenuItem("Open Image File");
     * openMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, DEFAULT_MASK));
     * openMenu.addActionListener(e -> { int returnVal =
     * kappaOpen.showOpenDialog(this.frame); if (returnVal ==
     * JFileChooser.APPROVE_OPTION) { openImageFile(kappaOpen.getSelectedFile()); }
     * }); fileMenu.add(openMenu);
     */

    JMenuItem openActiveMenu = new JMenuItem("Open Active Image");
    openActiveMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, DEFAULT_MASK));
    openActiveMenu.addActionListener(e -> {
        openActiveImage(context);
    });
    fileMenu.add(openActiveMenu);
    fileMenu.addSeparator();

    JMenuItem importROIsAsCurvesMenu = new JMenuItem("Import ROIs as curves");
    importROIsAsCurvesMenu.addActionListener(e -> {
        importROIsAsCurves(context);
    });
    fileMenu.add(importROIsAsCurvesMenu);
    fileMenu.addSeparator();

    JMenuItem loadMenu = new JMenuItem("Load Curve Data");
    loadMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, DEFAULT_MASK));
    loadMenu.addActionListener(e -> {
        // Handle open button action.
        int returnVal = kappaLoad.showOpenDialog(this.frame);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            file = kappaLoad.getSelectedFile();
            loadCurveFile(file);
        }
    });
    fileMenu.add(loadMenu);

    JMenuItem saveMenu = new JMenuItem("Save Curve Data");
    saveMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, DEFAULT_MASK));
    saveMenu.addActionListener(e -> {

        String dirPath = frame.getImageStack().getOriginalFileInfo().directory;
        if (dirPath != null) {
            String kappaPath = FilenameUtils
                    .removeExtension(frame.getImageStack().getOriginalFileInfo().fileName);
            kappaPath += ".kapp";
            File fullPath = new File(dirPath, kappaPath);
            kappaSave.setSelectedFile(fullPath);
        }

        // Handles save button action.
        int returnVal = kappaSave.showSaveDialog(this.frame);

        if (returnVal == JFileChooser.APPROVE_OPTION) {
            file = kappaSave.getSelectedFile();
            // Appends a .kapp
            if (!file.getPath().toLowerCase().endsWith(".kapp")) {
                file = new File(file.getPath() + ".kapp");
            }
            saveCurveFile(file);
        }
    });
    fileMenu.add(saveMenu);

    this.add(fileMenu);

    // Menu Items for all the tools
    JMenu toolMenu = new JMenu("Tools");
    for (int i = 0; i < ToolPanel.NO_TOOLS; i++) {
        toolMenuItems[i] = new JMenuItem(ToolPanel.TOOL_MENU_NAMES[i]);
        toolMenuItems[i].setEnabled(false);
        toolMenuItems[i].setAccelerator(KeyStroke.getKeyStroke(ToolPanel.TOOL_MNEMONICS[i], 0));
        final int j = i;
        toolMenuItems[i].addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                frame.getToolPanel().setSelected(j, true);
                frame.getScrollPane().setCursor(ToolPanel.TOOL_CURSORS[j]);
            }
        });
        toolMenu.add(toolMenuItems[i]);
    }

    // We also add a menu item for deleting Bezier Curves via the Backspace key.
    setDelete(new JMenuItem("Delete Curves"));
    getDelete().addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            frame.deleteCurve();
        }
    });
    getDelete().setEnabled(false);
    getDelete().setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
    toolMenu.addSeparator();
    toolMenu.add(getDelete());

    setEnter(new JMenuItem("Enter Curve"));
    getEnter().addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            frame.enterCurve();
        }
    });
    getEnter().setEnabled(false);
    getEnter().setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0));
    toolMenu.add(getEnter());

    fit = new JMenuItem("Fit Curve");
    fit.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            frame.fitCurves();
        }
    });
    fit.setEnabled(false);
    fit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, 0));
    toolMenu.add(fit);
    toolMenu.addSeparator();

    // TODO remove this later
    // JMenuItem runTestScript = new JMenuItem ("Run Testing Script");
    // runTestScript.addActionListener (new ActionListener(){
    // public void actionPerformed (ActionEvent event){
    // try{frame.testingScript();}
    // catch(IOException e){System.out.println("Script Error");}
    // }});
    // runTestScript.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_S, 0));
    // toolMenu.add(runTestScript);
    JCheckBoxMenuItem toggleCtrlPtAdjustment = new JCheckBoxMenuItem("Enable Control Point Adjustment");
    toggleCtrlPtAdjustment.setState(frame.isEnableCtrlPtAdjustment());
    toggleCtrlPtAdjustment.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            frame.setEnableCtrlPtAdjustment(!frame.isEnableCtrlPtAdjustment());
            ;
        }
    });
    toggleCtrlPtAdjustment.setEnabled(true);
    toolMenu.add(toggleCtrlPtAdjustment);

    this.add(toolMenu);

    // Navigation Menu
    // TODO FIX action listeners to these.
    JMenu navigateMenu = new JMenu("Navigate");
    prevFrame = new JMenuItem("Previous Frame");
    nextFrame = new JMenuItem("Next Frame");
    prevKeyframe = new JMenuItem("Previous Keyframe");
    nextKeyframe = new JMenuItem("Next Keyframe");
    prevFrame.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, ActionEvent.ALT_MASK));
    nextFrame.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, ActionEvent.ALT_MASK));
    prevKeyframe.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, DEFAULT_MASK));
    nextKeyframe.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, DEFAULT_MASK));
    prevFrame.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            frame.getControlPanel().getCurrentLayerSlider()
                    .setValue(Math.max(frame.getControlPanel().getCurrentLayerSlider().getValue() - 1,
                            frame.getControlPanel().getCurrentLayerSlider().getMinimum()));
        }
    });
    nextFrame.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            frame.getControlPanel().getCurrentLayerSlider()
                    .setValue(Math.min(frame.getControlPanel().getCurrentLayerSlider().getValue() + 1,
                            frame.getControlPanel().getCurrentLayerSlider().getMaximum()));
        }
    });
    prevKeyframe.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
        }
    });
    nextKeyframe.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
        }
    });
    prevFrame.setEnabled(false);
    nextFrame.setEnabled(false);
    prevKeyframe.setEnabled(false);
    nextKeyframe.setEnabled(false);
    navigateMenu.add(prevFrame);
    navigateMenu.add(nextFrame);
    navigateMenu.add(prevKeyframe);
    navigateMenu.add(nextKeyframe);
    this.add(navigateMenu);

    // Image options.
    JMenu imageMenu = new JMenu("Image");

    // Brightness and Contrast tool. Taken from ImageJ.
    adjustBrightnessContrast = new JMenuItem("Adjust Brightness/Contrast");
    adjustBrightnessContrast.setEnabled(false);
    adjustBrightnessContrast.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            ContrastAdjuster c = new ContrastAdjuster(frame);
            c.run("Brightness/Contrast...[C]");
        }
    });
    imageMenu.add(adjustBrightnessContrast);
    this.add(imageMenu);

    // Zoom-In and Zoom-Out Commands
    JMenu viewMenu = new JMenu("View");
    zoomIn = new JMenuItem("Zoom In");
    zoomOut = new JMenuItem("Zoom Out");
    zoomIn.addActionListener(new ZoomInListener(frame.getControlPanel()));
    zoomOut.addActionListener(new ZoomOutListener(frame.getControlPanel()));
    zoomIn.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, DEFAULT_MASK));
    zoomOut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, DEFAULT_MASK));
    zoomIn.setEnabled(false);
    zoomOut.setEnabled(false);

    // Menu Item for showing bounding boxes
    setBoundingBoxMenu(new JCheckBoxMenuItem("Show Bounding Boxes"));
    getBoundingBoxMenu().setState(false);
    getBoundingBoxMenu().addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent a) {
            frame.drawImageOverlay();
        }
    });
    getBoundingBoxMenu().setEnabled(false);

    // Menu Item for choosing the x-axis values for the curvature and intensity
    // display
    // For instance, you can display x vs. curvature, or current arc length vs
    // curvature, or the point index vs curvature
    // The default is the point index.
    distributionDisplay = DEFAULT_DISTRIBUTION_DISPLAY;
    JMenu xAxisSubmenu = new JMenu("Curve Distribution X-Axis:");
    ButtonGroup xAxisGroup = new ButtonGroup();
    JMenuItem xValue = new JCheckBoxMenuItem("X-Coordinate");
    JMenuItem curveLength = new JCheckBoxMenuItem("Arc Length");
    JMenuItem pointIndex = new JCheckBoxMenuItem("Point Index");
    xAxisGroup.add(xValue);
    xAxisGroup.add(curveLength);
    xAxisGroup.add(pointIndex);
    xAxisSubmenu.add(xValue);
    xAxisSubmenu.add(curveLength);
    xAxisSubmenu.add(pointIndex);
    xValue.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent a) {
            distributionDisplay = 0;
            frame.getInfoPanel().updateHistograms();
        }
    });
    curveLength.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent a) {
            distributionDisplay = 1;
            frame.getInfoPanel().updateHistograms();
        }
    });
    pointIndex.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent a) {
            distributionDisplay = 2;
            frame.getInfoPanel().updateHistograms();
        }
    });
    if (DEFAULT_DISTRIBUTION_DISPLAY == 0) {
        xValue.setSelected(true);
    } else if (DEFAULT_DISTRIBUTION_DISPLAY == 1) {
        curveLength.setSelected(true);
    } else {
        pointIndex.setSelected(true);
    }

    // Menu Item for scaling curve strokes when zooming in or out
    setScaleCurvesMenu(new JCheckBoxMenuItem("Scale Curve Strokes"));
    getScaleCurvesMenu().setState(true);
    getScaleCurvesMenu().addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent a) {
            frame.drawImageOverlay();
        }
    });
    getScaleCurvesMenu().setEnabled(false);

    // Menu Item for image antialiasing
    setAntialiasingMenu(new JCheckBoxMenuItem("Enable Antialiasing"));
    getAntialiasingMenu().setState(false);
    getAntialiasingMenu().addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent a) {
            frame.setScaledImage(frame.getControlPanel().getScaleSlider().getValue() / 100.0);
            frame.drawImageOverlay();
        }
    });
    getAntialiasingMenu().setEnabled(false);

    // Menu Item for displaying tangent and normal curves.
    setTangentMenu(new JCheckBoxMenuItem("Show Tangent and Normal Vectors"));
    getTangentMenu().setState(false);
    getTangentMenu().addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent a) {
            frame.drawImageOverlay();
        }
    });
    getTangentMenu().setEnabled(false);

    viewMenu.add(zoomIn);
    viewMenu.add(zoomOut);
    viewMenu.addSeparator();
    viewMenu.add(xAxisSubmenu);
    viewMenu.addSeparator();
    viewMenu.add(getScaleCurvesMenu());
    viewMenu.add(getTangentMenu());
    viewMenu.add(getBoundingBoxMenu());
    viewMenu.add(getAntialiasingMenu());
    this.add(viewMenu);

    // Sets a "Help" menu list
    JMenu helpMenu = new JMenu("Help");
    helpMenu.setMnemonic('H');

    // Adds an "About" option to the menu list
    JMenuItem aboutMenuItem = new JMenuItem("About...", 'A');
    aboutMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            JOptionPane.showMessageDialog(frame, "Developed by the Brouhard lab, 2016-2017.",
                    KappaFrame.APPLICATION_NAME, JOptionPane.INFORMATION_MESSAGE);
        }
    });

    // Adds a link to the User Manual
    JMenuItem userManualLink = new JMenuItem("User Manual");
    userManualLink.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            try {
                if (Desktop.isDesktopSupported()) {
                    Desktop.getDesktop().browse(new URI(
                            "https://dl.dropboxusercontent.com/u/157117/KappaFrame%20User%20Manual.pdf"));
                }
            } catch (Exception e) {
                System.out.println("Incorrect URL Syntax");
            }
            ;
        }
    });

    // Adds all newly created menu items to the "Help" list
    helpMenu.add(userManualLink);
    helpMenu.add(aboutMenuItem);
    this.add(helpMenu);
}