@SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        phaseButtonGroup = new javax.swing.ButtonGroup();
        basePanel = new javax.swing.JPanel();
        constructionPanel = new javax.swing.JPanel();
        massesLabel = new javax.swing.JLabel();
        massesTextField = new javax.swing.JTextField();
        massesSelectButton = new javax.swing.JButton();
        massesInfoLabel = new javax.swing.JLabel();
        connectionMapLabel = new javax.swing.JLabel();
        connectionMapTextField = new javax.swing.JTextField();
        connectionMapSelectButton = new javax.swing.JButton();
        connectionMapInfoLabel = new javax.swing.JLabel();
        armToMovementFiller = new javax.swing.Box.Filler(new java.awt.Dimension(0, 10), new java.awt.Dimension(0, 10), new java.awt.Dimension(32767, 15));
        simulationPanel = new javax.swing.JPanel();
        phaseLabel = new javax.swing.JLabel();
        learningRadioButton = new javax.swing.JRadioButton();
        executionRadioButton = new javax.swing.JRadioButton();
        trajectoryLabel = new javax.swing.JLabel();
        trajectoryTextField = new javax.swing.JTextField();
        trajectorySelectButton = new javax.swing.JButton();
        trajectoryInfoLabel = new javax.swing.JLabel();
        springLenghtsLabel = new javax.swing.JLabel();
        springLengthsTextField = new javax.swing.JTextField();
        springLengthsSelectButton = new javax.swing.JButton();
        springLengthsInfoLabel = new javax.swing.JLabel();
        weigthsLabel = new javax.swing.JLabel();
        weightsTextField = new javax.swing.JTextField();
        weightsSelectButton = new javax.swing.JButton();
        weightsInfoLabel = new javax.swing.JLabel();
        executableLabel = new javax.swing.JLabel();
        executableTextField = new javax.swing.JTextField();
        executableSelectButton = new javax.swing.JButton();
        executableInfoLabel = new javax.swing.JLabel();
        runPanel = new javax.swing.JPanel();
        runButton = new javax.swing.JButton();
        outputToButtonFiller = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
        menuBar = new javax.swing.JMenuBar();
        fileMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem quitMenuItem = new javax.swing.JMenuItem();
        toolsMenu = new javax.swing.JMenu();
        graphGeneratorMenu = new javax.swing.JMenuItem();
        weightsCalculatorMenu = new javax.swing.JMenuItem();
        helpMenu = new javax.swing.JMenu();
        aboutMenu = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Reservoir Control Toolbox");
        setResizable(false);

        basePanel.setLayout(new javax.swing.BoxLayout(basePanel, javax.swing.BoxLayout.PAGE_AXIS));

        constructionPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Robot Arm Construction"));

        massesLabel.setText("Masses:");
        massesLabel.setPreferredSize(new java.awt.Dimension(150, 15));

        massesTextField.setText("devArm/masses.csv");

        massesSelectButton.setText("Select...");
        massesSelectButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                massesSelectButtonActionPerformed(evt);
            }
        });

        massesInfoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ch/zhaw/iamp/rct/ui/information.png"))); // NOI18N
        massesInfoLabel.setToolTipText("<html>Contains all masses of the robot arm, i.e. shoulder, elbow, end effector, inputs and network masses.</html>");

        connectionMapLabel.setText("Connection Map:");
        connectionMapLabel.setPreferredSize(new java.awt.Dimension(150, 15));

        connectionMapTextField.setText("devArm/connectionMap.csv");

        connectionMapSelectButton.setText("Select...");
        connectionMapSelectButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                connectionMapSelectButtonActionPerformed(evt);
            }
        });

        connectionMapInfoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ch/zhaw/iamp/rct/ui/information.png"))); // NOI18N
        connectionMapInfoLabel.setToolTipText("<html>Contains the connections of the mass-spring network. This also defines of which type a connection is.</html>");

        javax.swing.GroupLayout constructionPanelLayout = new javax.swing.GroupLayout(constructionPanel);
        constructionPanel.setLayout(constructionPanelLayout);
        constructionPanelLayout.setHorizontalGroup(
            constructionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(constructionPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(constructionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(connectionMapLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(massesLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(constructionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(connectionMapTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE)
                    .addComponent(massesTextField))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(constructionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, constructionPanelLayout.createSequentialGroup()
                        .addComponent(massesSelectButton)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(massesInfoLabel))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, constructionPanelLayout.createSequentialGroup()
                        .addComponent(connectionMapSelectButton)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(connectionMapInfoLabel)))
                .addContainerGap())
        );
        constructionPanelLayout.setVerticalGroup(
            constructionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(constructionPanelLayout.createSequentialGroup()
                .addGap(7, 7, 7)
                .addGroup(constructionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(massesLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(constructionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(massesTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(massesSelectButton)
                        .addComponent(massesInfoLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(constructionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(constructionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(connectionMapLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(connectionMapTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(connectionMapSelectButton))
                    .addComponent(connectionMapInfoLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6))
        );

        basePanel.add(constructionPanel);
        constructionPanel.getAccessibleContext().setAccessibleName("Configuration");

        basePanel.add(armToMovementFiller);

        simulationPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Simulation"));

        phaseLabel.setText("Phase:");
        phaseLabel.setPreferredSize(new java.awt.Dimension(150, 15));

        phaseButtonGroup.add(learningRadioButton);
        learningRadioButton.setSelected(true);
        learningRadioButton.setText("Learning");
        learningRadioButton.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                learningRadioButtonItemStateChanged(evt);
            }
        });

        phaseButtonGroup.add(executionRadioButton);
        executionRadioButton.setText("Execution");
        executionRadioButton.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                executionRadioButtonItemStateChanged(evt);
            }
        });

        trajectoryLabel.setText("Trajectory:");
        trajectoryLabel.setPreferredSize(new java.awt.Dimension(150, 15));

        trajectoryTextField.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        trajectoryTextField.setText("devArm/angles.csv");
        trajectoryTextField.setMaximumSize(new java.awt.Dimension(2147483647, 22));

        trajectorySelectButton.setText("Select...");
        trajectorySelectButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                trajectorySelectButtonActionPerformed(evt);
            }
        });

        trajectoryInfoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ch/zhaw/iamp/rct/ui/information.png"))); // NOI18N
        trajectoryInfoLabel.setToolTipText("<html>This file has to contain angle values for both torques of the robot arm to form the target trajectory.</html>");

        springLenghtsLabel.setText("Spring Lengths Output:");
        springLenghtsLabel.setPreferredSize(new java.awt.Dimension(150, 15));

        springLengthsTextField.setText("devArm/output.csv");

        springLengthsSelectButton.setText("Select...");
        springLengthsSelectButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                springLengthsSelectButtonActionPerformed(evt);
            }
        });

        springLengthsInfoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ch/zhaw/iamp/rct/ui/information.png"))); // NOI18N
        springLengthsInfoLabel.setToolTipText("<html>The lengths of all springs will continuously be written to this file when the simulation is running.</html>");

        weigthsLabel.setText("Weights:");
        weigthsLabel.setPreferredSize(new java.awt.Dimension(150, 15));

        weightsTextField.setText("devArm/weights.csv");

        weightsSelectButton.setText("Select...");
        weightsSelectButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                weightsSelectButtonActionPerformed(evt);
            }
        });

        weightsInfoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ch/zhaw/iamp/rct/ui/information.png"))); // NOI18N
        weightsInfoLabel.setToolTipText("Enter the output file of the Weights Calculator.");

        executableLabel.setText("Physics Toolbox Executable:");

        executableTextField.setText("physics_toolbox");

        executableSelectButton.setText("Select...");
        executableSelectButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                executableSelectButtonActionPerformed(evt);
            }
        });

        executableInfoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ch/zhaw/iamp/rct/ui/information.png"))); // NOI18N
        executableInfoLabel.setToolTipText("<html>Select the executable of the Physics Toolbox. Typically, this lies in the <b>dist</b> folder of the Physics Toolbox project.</html>");

        runButton.setText("Run");
        runButton.setMargin(new java.awt.Insets(10, 20, 10, 20));
        runButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                runButtonActionPerformed(evt);
            }
        });
        runPanel.add(runButton);

        javax.swing.GroupLayout simulationPanelLayout = new javax.swing.GroupLayout(simulationPanel);
        simulationPanel.setLayout(simulationPanelLayout);
        simulationPanelLayout.setHorizontalGroup(
            simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, simulationPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(runPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(simulationPanelLayout.createSequentialGroup()
                        .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(phaseLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(trajectoryLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(springLenghtsLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(weigthsLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(executableLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(simulationPanelLayout.createSequentialGroup()
                                .addComponent(learningRadioButton)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(executionRadioButton)
                                .addGap(0, 0, Short.MAX_VALUE))
                            .addGroup(simulationPanelLayout.createSequentialGroup()
                                .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(executableTextField)
                                    .addComponent(trajectoryTextField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(springLengthsTextField, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(weightsTextField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, simulationPanelLayout.createSequentialGroup()
                                        .addComponent(trajectorySelectButton)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(trajectoryInfoLabel))
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, simulationPanelLayout.createSequentialGroup()
                                        .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(weightsSelectButton)
                                            .addComponent(springLengthsSelectButton))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(springLengthsInfoLabel)
                                            .addComponent(weightsInfoLabel, javax.swing.GroupLayout.Alignment.TRAILING)))
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, simulationPanelLayout.createSequentialGroup()
                                        .addComponent(executableSelectButton)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(executableInfoLabel)))))))
                .addContainerGap())
        );
        simulationPanelLayout.setVerticalGroup(
            simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(simulationPanelLayout.createSequentialGroup()
                .addGap(6, 6, 6)
                .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(learningRadioButton)
                    .addComponent(executionRadioButton)
                    .addComponent(phaseLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(trajectoryLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(trajectoryTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(trajectorySelectButton)
                    .addComponent(trajectoryInfoLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(simulationPanelLayout.createSequentialGroup()
                        .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(springLenghtsLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(springLengthsTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(springLengthsSelectButton))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(weigthsLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(weightsTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(weightsSelectButton))
                            .addComponent(weightsInfoLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 25, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(executableLabel)
                            .addComponent(executableTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(executableSelectButton)
                            .addComponent(executableInfoLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                    .addComponent(springLengthsInfoLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(runPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        basePanel.add(simulationPanel);
        basePanel.add(outputToButtonFiller);

        fileMenu.setText("File");

        quitMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
        quitMenuItem.setText("Quit");
        quitMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                quitMenuItemActionPerformed(evt);
            }
        });
        fileMenu.add(quitMenuItem);

        menuBar.add(fileMenu);

        toolsMenu.setText("Tools");

        graphGeneratorMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_G, java.awt.event.InputEvent.CTRL_MASK));
        graphGeneratorMenu.setText("Graph Generator");
        graphGeneratorMenu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                graphGeneratorMenuActionPerformed(evt);
            }
        });
        toolsMenu.add(graphGeneratorMenu);

        weightsCalculatorMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.CTRL_MASK));
        weightsCalculatorMenu.setText("Weights Calculator");
        weightsCalculatorMenu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                weightsCalculatorMenuActionPerformed(evt);
            }
        });
        toolsMenu.add(weightsCalculatorMenu);

        menuBar.add(toolsMenu);

        helpMenu.setText("Help");

        aboutMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
        aboutMenu.setText("About...");
        aboutMenu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                aboutMenuActionPerformed(evt);
            }
        });
        helpMenu.add(aboutMenu);

        menuBar.add(helpMenu);

        setJMenuBar(menuBar);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(basePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(basePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents