docs: @SuppressWarnings("unchecked")
      // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
      private void initComponents() {
  
          aztecButtonGroup = new javax.swing.ButtonGroup();
          gridmatrixButtonGroup = new javax.swing.ButtonGroup();
          microQrButtonGroup = new javax.swing.ButtonGroup();
          qrButtonGroup = new javax.swing.ButtonGroup();
          symbolPane = new javax.swing.JScrollPane();
          symbolTree = new JTree(treeTop);
          mainTabs = new javax.swing.JTabbedPane();
          singlePanel = new javax.swing.JPanel();
          compositeInputField = new javax.swing.JTextField();
          compositeLabel = new javax.swing.JLabel();
          dataInputField = new javax.swing.JTextField();
          inputLabel = new javax.swing.JLabel();
          loadDataButton = new javax.swing.JButton();
          topPanel = new javax.swing.JPanel();
          errorLabel = new javax.swing.JLabel();
          addCompositeButton = new javax.swing.JButton();
          useGS1Check = new javax.swing.JCheckBox();
          useCompositeCheck = new javax.swing.JCheckBox();
          batchPanel = new javax.swing.JPanel();
          startField = new javax.swing.JTextField();
          stopField = new javax.swing.JTextField();
          incrementField = new javax.swing.JTextField();
          startLabel = new javax.swing.JLabel();
          stopLabel = new javax.swing.JLabel();
          incrementLabel = new javax.swing.JLabel();
          formatLabel = new javax.swing.JLabel();
          batchFileButton = new javax.swing.JButton();
          createButton = new javax.swing.JButton();
          folderField = new javax.swing.JTextField();
          prefixField = new javax.swing.JTextField();
          destinationLabel = new javax.swing.JLabel();
          prefixLabel = new javax.swing.JLabel();
          outFileNameLabel = new javax.swing.JLabel();
          outFileFormatLabel = new javax.swing.JLabel();
          outFilenameCombo = new javax.swing.JComboBox();
          outFormatCombo = new javax.swing.JComboBox();
          runBatchButton = new javax.swing.JButton();
          formatField = new javax.swing.JTextField();
          directoryButton = new javax.swing.JButton();
          resetButton = new javax.swing.JButton();
          sequenceArea = new java.awt.TextArea();
          batchOutputArea = new java.awt.TextArea();
          attributePanel = new javax.swing.JPanel();
          inkButton = new javax.swing.JButton();
          paperButton = new javax.swing.JButton();
          resetColourButton = new javax.swing.JButton();
          encodeInfoArea = new java.awt.TextArea();
          attributeScrollPane = new javax.swing.JScrollPane();
          attributeScrollPanel = new javax.swing.JPanel();
          aztecPanel = new javax.swing.JPanel();
          aztecAutoSize = new javax.swing.JRadioButton();
          aztecUserSize = new javax.swing.JRadioButton();
          aztecUserEcc = new javax.swing.JRadioButton();
          aztecUserSizeCombo = new javax.swing.JComboBox();
          aztecUserEccCombo = new javax.swing.JComboBox();
          channelPanel = new javax.swing.JPanel();
          channelNoOfChannels = new javax.swing.JLabel();
          channelChannelsCombo = new javax.swing.JComboBox();
          code39Panel = new javax.swing.JPanel();
          code39CheckLabel = new javax.swing.JLabel();
          code39CheckCombo = new javax.swing.JComboBox();
          codeOnePanel = new javax.swing.JPanel();
          codeOneSizeLabel = new javax.swing.JLabel();
          codeOneSizeCombo = new javax.swing.JComboBox();
          databarPanel = new javax.swing.JPanel();
          databarColumnsLabel = new javax.swing.JLabel();
          databarColumnsCombo = new javax.swing.JComboBox();
          datamatrixPanel = new javax.swing.JPanel();
          dataMatrixSizeLabel = new javax.swing.JLabel();
          dataMatrixSizeCombo = new javax.swing.JComboBox();
          dataMatrixSquareOnlyCheck = new javax.swing.JCheckBox();
          gridmatrixPanel = new javax.swing.JPanel();
          gridmatrixAutoSize = new javax.swing.JRadioButton();
          gridmatrixUserSize = new javax.swing.JRadioButton();
          gridmatrixUserEcc = new javax.swing.JRadioButton();
          gridmatrixUserSizeCombo = new javax.swing.JComboBox();
          gridmatrixUserEccCombo = new javax.swing.JComboBox();
          maxicodePanel = new javax.swing.JPanel();
          maxiEncodeModeLabel = new javax.swing.JLabel();
          maxiPrimaryDataLabel = new javax.swing.JLabel();
          maxiEncodingModeCombo = new javax.swing.JComboBox();
          maxiPrimaryData = new javax.swing.JTextField();
          microPdfPanel = new javax.swing.JPanel();
          microPdfColumnsLabel = new javax.swing.JLabel();
          microPdfColumnsCombo = new javax.swing.JComboBox();
          microQrPanel = new javax.swing.JPanel();
          microQrAutoSize = new javax.swing.JRadioButton();
          microQrUserSize = new javax.swing.JRadioButton();
          microQrUserEcc = new javax.swing.JRadioButton();
          microQrUserSizeCombo = new javax.swing.JComboBox();
          microQrUserEccCombo = new javax.swing.JComboBox();
          msiPanel = new javax.swing.JPanel();
          msiCheckDigitLabel = new javax.swing.JLabel();
          msiCheckDigitCombo = new javax.swing.JComboBox();
          pdfPanel = new javax.swing.JPanel();
          pdfDataColumnsLabel = new javax.swing.JLabel();
          pdfEccLabel = new javax.swing.JLabel();
          pdfColumnsCombo = new javax.swing.JComboBox();
          pdfEccCombo = new javax.swing.JComboBox();
          qrPanel = new javax.swing.JPanel();
          qrAutoSize = new javax.swing.JRadioButton();
          qrUserSize = new javax.swing.JRadioButton();
          qrUserEcc = new javax.swing.JRadioButton();
          qrUserSizeCombo = new javax.swing.JComboBox();
          qrUserEccCombo = new javax.swing.JComboBox();
          compositePanel = new javax.swing.JPanel();
          compositeModeLabel = new javax.swing.JLabel();
          compositeUserMode = new javax.swing.JComboBox();
          chkReaderInit = new javax.swing.JCheckBox();
          cmbHrtPosition = new javax.swing.JComboBox();
          txtShowHrt = new javax.swing.JLabel();
          lblXDimension = new javax.swing.JLabel();
          lblXDimensionPixels = new javax.swing.JLabel();
          lblBorderWidth = new javax.swing.JLabel();
          lblWhitespaceWidth = new javax.swing.JLabel();
          txtXDimension = new javax.swing.JTextField();
          txtBorderWidth = new javax.swing.JTextField();
          txtWhitespaceWidth = new javax.swing.JTextField();
          exitButton = new javax.swing.JButton();
          saveButton = new javax.swing.JButton();
          aboutButton = new javax.swing.JButton();
  
          setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
          setTitle("Okapi Barcode");
          setResizable(false);
  
          symbolPane.setViewportView(symbolTree);
  
          mainTabs.setName(""); // NOI18N
  
          compositeInputField.setEnabled(false);
  
          compositeLabel.setText("Composite:");
          compositeLabel.setEnabled(false);
  
          dataInputField.setText("Your Data Here!");
  
          inputLabel.setText("Data:");
  
          loadDataButton.setText("...");
          loadDataButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  loadDataButtonActionPerformed(evt);
              }
          });
  
          topPanel.setBackground(paperColour);
          topPanel.setPreferredSize(new java.awt.Dimension(480, 480));
  
          errorLabel.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
          errorLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
          errorLabel.setText("Error");
  
          javax.swing.GroupLayout topPanelLayout = new javax.swing.GroupLayout(topPanel);
          topPanel.setLayout(topPanelLayout);
          topPanelLayout.setHorizontalGroup(
              topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, topPanelLayout.createSequentialGroup()
                  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(errorLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 322, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addGap(164, 164, 164))
          );
          topPanelLayout.setVerticalGroup(
              topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, topPanelLayout.createSequentialGroup()
                  .addContainerGap(237, Short.MAX_VALUE)
                  .addComponent(errorLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addGap(194, 194, 194))
          );
  
          addCompositeButton.setText("...");
          addCompositeButton.setEnabled(false);
          addCompositeButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  addCompositeButtonActionPerformed(evt);
              }
          });
  
          useGS1Check.setText("Use GS1 Data Encodation");
          useGS1Check.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  useGS1CheckActionPerformed(evt);
              }
          });
  
          useCompositeCheck.setText("Add Composite Component");
          useCompositeCheck.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  useCompositeCheckActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout singlePanelLayout = new javax.swing.GroupLayout(singlePanel);
          singlePanel.setLayout(singlePanelLayout);
          singlePanelLayout.setHorizontalGroup(
              singlePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, singlePanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(singlePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(compositeLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE)
                      .addGroup(singlePanelLayout.createSequentialGroup()
                          .addComponent(inputLabel)
                          .addGap(0, 0, Short.MAX_VALUE)))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                  .addGroup(singlePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addGroup(singlePanelLayout.createSequentialGroup()
                          .addComponent(useGS1Check, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)
                          .addGap(18, 18, 18)
                          .addComponent(useCompositeCheck, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE))
                      .addGroup(singlePanelLayout.createSequentialGroup()
                          .addGroup(singlePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                              .addComponent(dataInputField, javax.swing.GroupLayout.DEFAULT_SIZE, 520, Short.MAX_VALUE)
                              .addComponent(compositeInputField))
                          .addGap(8, 8, 8)
                          .addGroup(singlePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                              .addComponent(loadDataButton, javax.swing.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE)
                              .addComponent(addCompositeButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                  .addContainerGap())
              .addComponent(topPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 846, Short.MAX_VALUE)
          );
          singlePanelLayout.setVerticalGroup(
              singlePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, singlePanelLayout.createSequentialGroup()
                  .addComponent(topPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 459, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 56, Short.MAX_VALUE)
                  .addGroup(singlePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(useGS1Check)
                      .addComponent(useCompositeCheck))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(singlePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(dataInputField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(inputLabel)
                      .addComponent(loadDataButton))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                  .addGroup(singlePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(compositeInputField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(compositeLabel)
                      .addComponent(addCompositeButton))
                  .addContainerGap())
          );
  
          mainTabs.addTab("Single", singlePanel);
  
          startField.setText("1");
  
          stopField.setText("10");
  
          incrementField.setText("1");
  
          startLabel.setText("Start Value:");
  
          stopLabel.setText("End Value:");
  
          incrementLabel.setText("Increment By:");
  
          formatLabel.setText("Format:");
  
          batchFileButton.setText("Import");
          batchFileButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  batchFileButtonActionPerformed(evt);
              }
          });
  
          createButton.setText("Create");
          createButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  createButtonActionPerformed(evt);
              }
          });
  
          prefixField.setText("bcs_");
  
          destinationLabel.setText("Destination Path:");
  
          prefixLabel.setText("File Prefix:");
  
          outFileNameLabel.setText("File Name:");
  
          outFileFormatLabel.setText("File Format:");
  
          outFilenameCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Same as Data", "Line Number" }));
  
          outFormatCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Portable Network Graphic (*.png)", "Joint Photographic Expert Group Image (*.jpg)", "Graphics Interchange Format (*.gif)", "Windows Bitmap (*.bmp)", "Scalable Vector Graphic (*.svg)", "Encapsulated Post Script (*.eps)" }));
  
          runBatchButton.setText("Run Batch");
          runBatchButton.setEnabled(false);
          runBatchButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  runBatchButtonActionPerformed(evt);
              }
          });
  
          formatField.setText("$$$$$$");
  
          directoryButton.setText("Select Directory");
          directoryButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  directoryButtonActionPerformed(evt);
              }
          });
  
          resetButton.setText("Reset");
          resetButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  resetButtonActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout batchPanelLayout = new javax.swing.GroupLayout(batchPanel);
          batchPanel.setLayout(batchPanelLayout);
          batchPanelLayout.setHorizontalGroup(
              batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(batchPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(batchOutputArea, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(sequenceArea, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addGroup(batchPanelLayout.createSequentialGroup()
                          .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                              .addComponent(incrementLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE)
                              .addComponent(stopLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                              .addComponent(startLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                          .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                              .addComponent(stopField, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 182, Short.MAX_VALUE)
                              .addComponent(incrementField)
                              .addComponent(startField))
                          .addGap(18, 18, 18)
                          .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                              .addGroup(batchPanelLayout.createSequentialGroup()
                                  .addComponent(formatLabel)
                                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                  .addComponent(formatField, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE))
                              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, batchPanelLayout.createSequentialGroup()
                                  .addGap(0, 0, Short.MAX_VALUE)
                                  .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                      .addComponent(batchFileButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                                      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, batchPanelLayout.createSequentialGroup()
                                          .addComponent(resetButton, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                          .addComponent(createButton, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE))))))
                      .addGroup(batchPanelLayout.createSequentialGroup()
                          .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                              .addComponent(destinationLabel)
                              .addComponent(prefixLabel)
                              .addComponent(outFileNameLabel)
                              .addComponent(outFileFormatLabel))
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                          .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                              .addComponent(outFilenameCombo, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                              .addComponent(prefixField, javax.swing.GroupLayout.Alignment.LEADING)
                              .addComponent(folderField, javax.swing.GroupLayout.Alignment.LEADING)
                              .addComponent(outFormatCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 365, javax.swing.GroupLayout.PREFERRED_SIZE))
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                          .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                              .addComponent(directoryButton, javax.swing.GroupLayout.PREFERRED_SIZE, 131, Short.MAX_VALUE)
                              .addComponent(runBatchButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                  .addContainerGap())
          );
          batchPanelLayout.setVerticalGroup(
              batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(batchPanelLayout.createSequentialGroup()
                  .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(startField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(startLabel)
                      .addComponent(formatLabel)
                      .addComponent(formatField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(stopField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(stopLabel)
                      .addComponent(resetButton)
                      .addComponent(createButton))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(incrementField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(incrementLabel)
                      .addComponent(batchFileButton))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(sequenceArea, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(folderField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(destinationLabel)
                      .addComponent(directoryButton))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(prefixField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(prefixLabel))
                  .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addGroup(batchPanelLayout.createSequentialGroup()
                          .addGap(11, 11, 11)
                          .addComponent(outFileNameLabel)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                          .addComponent(outFileFormatLabel))
                      .addGroup(batchPanelLayout.createSequentialGroup()
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                          .addComponent(outFilenameCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                          .addGroup(batchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                              .addComponent(outFormatCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                              .addComponent(runBatchButton))))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(batchOutputArea, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addContainerGap())
          );
  
          mainTabs.addTab("Batch", batchPanel);
  
          inkButton.setText("Select Ink Colour");
          inkButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  inkButtonActionPerformed(evt);
              }
          });
  
          paperButton.setText("Select Paper Colour");
          paperButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  paperButtonActionPerformed(evt);
              }
          });
  
          resetColourButton.setText("Reset Colours");
          resetColourButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  resetColourButtonActionPerformed(evt);
              }
          });
  
          encodeInfoArea.setEditable(false);
  
          aztecPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Aztec Code"));
  
          aztecButtonGroup.add(aztecAutoSize);
          aztecAutoSize.setSelected(true);
          aztecAutoSize.setText("Automatic Resizing");
          aztecAutoSize.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  aztecAutoSizeActionPerformed(evt);
              }
          });
  
          aztecButtonGroup.add(aztecUserSize);
          aztecUserSize.setText("Adjust Size To:");
          aztecUserSize.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  aztecUserSizeActionPerformed(evt);
              }
          });
  
          aztecButtonGroup.add(aztecUserEcc);
          aztecUserEcc.setText("Add Minimum Error Correction:");
          aztecUserEcc.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  aztecUserEccActionPerformed(evt);
              }
          });
  
          aztecUserSizeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "15 X 15 Compact", "19 X 19 Compact", "23 X 23 Compact", "27 X 27 Compact", "19 X 19", "23 X 23", "27 X 27", "31 X 31", "37 X 37", "41 X 41", "45 X 45", "49 X 49", "53 X 53", "57 X 57", "61 X 61", "67 X 67", "71 X 71", "75 X 75", "79 X 79", "83 X 83", "87 X 87", "91 X 91", "95 X 95", "101 X 101", "105 X 105", "109 X 109", "113 X 113", "117 X 117", "121 X 121", "125 X 125", "131 X 131", "135 X 135", "139 X 139", "143 X 143", "147 X 147", "151 X 151" }));
          aztecUserSizeCombo.setEnabled(false);
          aztecUserSizeCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  aztecUserSizeComboActionPerformed(evt);
              }
          });
  
          aztecUserEccCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "10% + 3 words", "23% + 3 words", "36% + 3 words", "50% + 3 words" }));
          aztecUserEccCombo.setEnabled(false);
          aztecUserEccCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  aztecUserEccComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout aztecPanelLayout = new javax.swing.GroupLayout(aztecPanel);
          aztecPanel.setLayout(aztecPanelLayout);
          aztecPanelLayout.setHorizontalGroup(
              aztecPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(aztecPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(aztecPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                      .addComponent(aztecAutoSize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(aztecUserSize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(aztecUserEcc, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addGroup(aztecPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(aztecUserEccCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(aztecUserSizeCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addContainerGap())
          );
          aztecPanelLayout.setVerticalGroup(
              aztecPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(aztecPanelLayout.createSequentialGroup()
                  .addComponent(aztecAutoSize)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(aztecPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(aztecUserSize, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(aztecUserSizeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(aztecPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(aztecUserEccCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(aztecUserEcc))
                  .addGap(1, 1, 1))
          );
  
          channelPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Channel Code"));
  
          channelNoOfChannels.setText("Number of Channels:");
  
          channelChannelsCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Automatic", "3", "4", "5", "6", "7", "8" }));
          channelChannelsCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  channelChannelsComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout channelPanelLayout = new javax.swing.GroupLayout(channelPanel);
          channelPanel.setLayout(channelPanelLayout);
          channelPanelLayout.setHorizontalGroup(
              channelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(channelPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addComponent(channelNoOfChannels)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(channelChannelsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addContainerGap())
          );
          channelPanelLayout.setVerticalGroup(
              channelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(channelPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                  .addComponent(channelNoOfChannels)
                  .addComponent(channelChannelsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
          );
  
          code39Panel.setBorder(javax.swing.BorderFactory.createTitledBorder("Code 39"));
  
          code39CheckLabel.setText("Check Digit Option:");
  
          code39CheckCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "No Check Digit", "Mod-43 Check Digit" }));
          code39CheckCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  code39CheckComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout code39PanelLayout = new javax.swing.GroupLayout(code39Panel);
          code39Panel.setLayout(code39PanelLayout);
          code39PanelLayout.setHorizontalGroup(
              code39PanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(code39PanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addComponent(code39CheckLabel)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(code39CheckCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addContainerGap())
          );
          code39PanelLayout.setVerticalGroup(
              code39PanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(code39PanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                  .addComponent(code39CheckLabel)
                  .addComponent(code39CheckCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
          );
  
          codeOnePanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Code One"));
  
          codeOneSizeLabel.setText("Symbol Size:");
  
          codeOneSizeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Automatic", "16 X 18 (Version A)", "22 X 22 (Version B)", "28 X 32 (Version C)", "40 X 42 (Version D)", "52 X 54 (Version E)", "70 X 76 (Version F)", "104 X 98 (Version G)", "148 X 134 (Version H)", "8X Height (Version S)", "16X Height (Version T)" }));
          codeOneSizeCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  codeOneSizeComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout codeOnePanelLayout = new javax.swing.GroupLayout(codeOnePanel);
          codeOnePanel.setLayout(codeOnePanelLayout);
          codeOnePanelLayout.setHorizontalGroup(
              codeOnePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(codeOnePanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addComponent(codeOneSizeLabel)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(codeOneSizeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addContainerGap())
          );
          codeOnePanelLayout.setVerticalGroup(
              codeOnePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(codeOnePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                  .addComponent(codeOneSizeLabel)
                  .addComponent(codeOneSizeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
          );
  
          databarPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("GS1 DataBar Expanded Stacked"));
  
          databarColumnsLabel.setText("Number of Columns:");
  
          databarColumnsCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Automatic", "1", "2", "3", "4", "5", "6", "7", "8", "9" }));
          databarColumnsCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  databarColumnsComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout databarPanelLayout = new javax.swing.GroupLayout(databarPanel);
          databarPanel.setLayout(databarPanelLayout);
          databarPanelLayout.setHorizontalGroup(
              databarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(databarPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addComponent(databarColumnsLabel)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(databarColumnsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addContainerGap())
          );
          databarPanelLayout.setVerticalGroup(
              databarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(databarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                  .addComponent(databarColumnsLabel)
                  .addComponent(databarColumnsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
          );
  
          datamatrixPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Data Matrix"));
  
          dataMatrixSizeLabel.setText("Symbol Size:");
  
          dataMatrixSizeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Automatic", "10 X 10", "12 X 12", "14 X 14", "16 X 16", "18 X 18", "20 X 20", "22 X 22", "24 X 24", "26 X 26", "32 X 32", "36 X 36", "40 X 40", "44 X 44", "48 X 48", "52 X 52", "64 X 64", "72 X 72", "80 X 80", "88 X 88", "96 X 96", "104 X 104", "120 X 120", "132 X 132", "144 X 144", "8 X 18", "8 X 32", "12 X 26", "12 X 36", "16 X 36", "16 X 48" }));
          dataMatrixSizeCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  dataMatrixSizeComboActionPerformed(evt);
              }
          });
  
          dataMatrixSquareOnlyCheck.setSelected(true);
          dataMatrixSquareOnlyCheck.setText("Supress Rectangular Symbols in Automatic Mode");
          dataMatrixSquareOnlyCheck.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  dataMatrixSquareOnlyCheckActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout datamatrixPanelLayout = new javax.swing.GroupLayout(datamatrixPanel);
          datamatrixPanel.setLayout(datamatrixPanelLayout);
          datamatrixPanelLayout.setHorizontalGroup(
              datamatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(datamatrixPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(datamatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addGroup(datamatrixPanelLayout.createSequentialGroup()
                          .addComponent(dataMatrixSquareOnlyCheck)
                          .addGap(0, 0, Short.MAX_VALUE))
                      .addGroup(datamatrixPanelLayout.createSequentialGroup()
                          .addComponent(dataMatrixSizeLabel)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                          .addComponent(dataMatrixSizeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)))
                  .addContainerGap())
          );
          datamatrixPanelLayout.setVerticalGroup(
              datamatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(datamatrixPanelLayout.createSequentialGroup()
                  .addGroup(datamatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(dataMatrixSizeLabel)
                      .addComponent(dataMatrixSizeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(dataMatrixSquareOnlyCheck))
          );
  
          gridmatrixPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Grid Matrix"));
  
          gridmatrixButtonGroup.add(gridmatrixAutoSize);
          gridmatrixAutoSize.setSelected(true);
          gridmatrixAutoSize.setText("Automatic Resizing");
          gridmatrixAutoSize.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  gridmatrixAutoSizeActionPerformed(evt);
              }
          });
  
          gridmatrixButtonGroup.add(gridmatrixUserSize);
          gridmatrixUserSize.setText("Adjust Size To:");
          gridmatrixUserSize.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  gridmatrixUserSizeActionPerformed(evt);
              }
          });
  
          gridmatrixButtonGroup.add(gridmatrixUserEcc);
          gridmatrixUserEcc.setText("Add Minimum Error Correction:");
          gridmatrixUserEcc.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  gridmatrixUserEccActionPerformed(evt);
              }
          });
  
          gridmatrixUserSizeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "18 X 18 (Version 1)", "30 X 30 (Version 2)", "42 X 42 (Version 3)", "54 X 54 (Version 4)", "66 X 66 (Version 5)", "78 X 78 (Version 6)", "90 X 90 (Version 7)", "102 X 102 (Version 8)", "114 X 114 (Version 9)", "126 X 126 (Version 10)", "138 X 138 (Version 11)", "150 X 150 (Version 12)", "162 X 162 (Version 13)" }));
          gridmatrixUserSizeCombo.setEnabled(false);
          gridmatrixUserSizeCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  gridmatrixUserSizeComboActionPerformed(evt);
              }
          });
  
          gridmatrixUserEccCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Approx 10%", "Approx 20%", "Approx 30%", "Approx 40%", "Approx 50%" }));
          gridmatrixUserEccCombo.setEnabled(false);
          gridmatrixUserEccCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  gridmatrixUserEccComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout gridmatrixPanelLayout = new javax.swing.GroupLayout(gridmatrixPanel);
          gridmatrixPanel.setLayout(gridmatrixPanelLayout);
          gridmatrixPanelLayout.setHorizontalGroup(
              gridmatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(gridmatrixPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(gridmatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(gridmatrixAutoSize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(gridmatrixUserSize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(gridmatrixUserEcc, javax.swing.GroupLayout.DEFAULT_SIZE, 248, Short.MAX_VALUE))
                  .addGap(74, 74, 74)
                  .addGroup(gridmatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(gridmatrixUserSizeCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(gridmatrixUserEccCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addContainerGap())
          );
          gridmatrixPanelLayout.setVerticalGroup(
              gridmatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(gridmatrixPanelLayout.createSequentialGroup()
                  .addComponent(gridmatrixAutoSize)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(gridmatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(gridmatrixUserSize)
                      .addComponent(gridmatrixUserSizeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(gridmatrixPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(gridmatrixUserEcc)
                      .addComponent(gridmatrixUserEccCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
          );
  
          maxicodePanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Maxicode"));
  
          maxiEncodeModeLabel.setText("Encoding Mode:");
  
          maxiPrimaryDataLabel.setText("Primary Data:");
          maxiPrimaryDataLabel.setEnabled(false);
  
          maxiEncodingModeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Structured Carrier Message (Mode 2)", "Structured Carrier Message (Mode 3)", "Standard Symbol (Mode 4)", "Full ECC Symbol (Mode 5)" }));
          maxiEncodingModeCombo.setSelectedIndex(2);
          maxiEncodingModeCombo.setToolTipText("");
          maxiEncodingModeCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  maxiEncodingModeComboActionPerformed(evt);
              }
          });
  
          maxiPrimaryData.setText("Primary Data Here!");
          maxiPrimaryData.setEnabled(false);
          maxiPrimaryData.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  maxiPrimaryDataActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout maxicodePanelLayout = new javax.swing.GroupLayout(maxicodePanel);
          maxicodePanel.setLayout(maxicodePanelLayout);
          maxicodePanelLayout.setHorizontalGroup(
              maxicodePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(maxicodePanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(maxicodePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(maxiEncodeModeLabel)
                      .addComponent(maxiPrimaryDataLabel))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addGroup(maxicodePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(maxiEncodingModeCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(maxiPrimaryData, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addContainerGap())
          );
          maxicodePanelLayout.setVerticalGroup(
              maxicodePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(maxicodePanelLayout.createSequentialGroup()
                  .addGroup(maxicodePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(maxiEncodeModeLabel)
                      .addComponent(maxiEncodingModeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addGap(9, 9, 9)
                  .addGroup(maxicodePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(maxiPrimaryData, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(maxiPrimaryDataLabel))
                  .addGap(2, 2, 2))
          );
  
          microPdfPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Micro PDF417"));
  
          microPdfColumnsLabel.setText("Number of Data Columns:");
  
          microPdfColumnsCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Automatic", "1", "2", "3", "4" }));
          microPdfColumnsCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  microPdfColumnsComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout microPdfPanelLayout = new javax.swing.GroupLayout(microPdfPanel);
          microPdfPanel.setLayout(microPdfPanelLayout);
          microPdfPanelLayout.setHorizontalGroup(
              microPdfPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(microPdfPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addComponent(microPdfColumnsLabel)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(microPdfColumnsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addContainerGap())
          );
          microPdfPanelLayout.setVerticalGroup(
              microPdfPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addComponent(microPdfColumnsCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
              .addComponent(microPdfColumnsLabel, javax.swing.GroupLayout.Alignment.TRAILING)
          );
  
          microQrPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Micro QR Code"));
  
          microQrButtonGroup.add(microQrAutoSize);
          microQrAutoSize.setSelected(true);
          microQrAutoSize.setText("Automatic Resizing");
          microQrAutoSize.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  microQrAutoSizeActionPerformed(evt);
              }
          });
  
          microQrButtonGroup.add(microQrUserSize);
          microQrUserSize.setText("Adjust Size To:");
          microQrUserSize.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  microQrUserSizeActionPerformed(evt);
              }
          });
  
          microQrButtonGroup.add(microQrUserEcc);
          microQrUserEcc.setText("Add Minimum Error Correction:");
          microQrUserEcc.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  microQrUserEccActionPerformed(evt);
              }
          });
  
          microQrUserSizeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "11 X 11 (Version M1)", "13 X 13 (Version M2)", "15 X 15 (Version M3)", "17 X 17 (Version M4)" }));
          microQrUserSizeCombo.setEnabled(false);
          microQrUserSizeCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  microQrUserSizeComboActionPerformed(evt);
              }
          });
  
          microQrUserEccCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Approx 20% (Level L)", "Approx 37% (Level M)", "Approx 55% (Level Q)" }));
          microQrUserEccCombo.setEnabled(false);
          microQrUserEccCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  microQrUserEccComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout microQrPanelLayout = new javax.swing.GroupLayout(microQrPanel);
          microQrPanel.setLayout(microQrPanelLayout);
          microQrPanelLayout.setHorizontalGroup(
              microQrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(microQrPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(microQrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(microQrAutoSize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(microQrUserSize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(microQrUserEcc, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                  .addGap(14, 14, 14)
                  .addGroup(microQrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(microQrUserSizeCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(microQrUserEccCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addContainerGap())
          );
          microQrPanelLayout.setVerticalGroup(
              microQrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(microQrPanelLayout.createSequentialGroup()
                  .addComponent(microQrAutoSize)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(microQrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(microQrUserSize)
                      .addComponent(microQrUserSizeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(microQrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(microQrUserEcc)
                      .addComponent(microQrUserEccCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
          );
  
          msiPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("MSI Plessey"), "MSI Plessey"));
  
          msiCheckDigitLabel.setText("Check Digit:");
  
          msiCheckDigitCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "None", "Mod-10", "Mod-10 & Mod-10", "Mod-11", "Mod-11 & Mod-10" }));
          msiCheckDigitCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  msiCheckDigitComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout msiPanelLayout = new javax.swing.GroupLayout(msiPanel);
          msiPanel.setLayout(msiPanelLayout);
          msiPanelLayout.setHorizontalGroup(
              msiPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(msiPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addComponent(msiCheckDigitLabel)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(msiCheckDigitCombo, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addContainerGap())
          );
          msiPanelLayout.setVerticalGroup(
              msiPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(msiPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                  .addComponent(msiCheckDigitLabel)
                  .addComponent(msiCheckDigitCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
          );
  
          pdfPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("PDF417"));
  
          pdfDataColumnsLabel.setText("Number of Data Columns:");
  
          pdfEccLabel.setText("Error Correction Capacity:");
  
          pdfColumnsCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Automatic", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" }));
          pdfColumnsCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  pdfColumnsComboActionPerformed(evt);
              }
          });
  
          pdfEccCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Automatic", "2 words", "4 words", "8 words", "16 words", "32 words", "64 words", "128 words", "256 words", "512 words" }));
          pdfEccCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  pdfEccComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout pdfPanelLayout = new javax.swing.GroupLayout(pdfPanel);
          pdfPanel.setLayout(pdfPanelLayout);
          pdfPanelLayout.setHorizontalGroup(
              pdfPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(pdfPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(pdfPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                      .addComponent(pdfDataColumnsLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(pdfEccLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addGroup(pdfPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(pdfColumnsCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(pdfEccCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addContainerGap())
          );
          pdfPanelLayout.setVerticalGroup(
              pdfPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(pdfPanelLayout.createSequentialGroup()
                  .addGroup(pdfPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(pdfDataColumnsLabel)
                      .addComponent(pdfColumnsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(pdfPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(pdfEccLabel)
                      .addComponent(pdfEccCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
          );
  
          qrPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("QR Code"));
  
          qrButtonGroup.add(qrAutoSize);
          qrAutoSize.setSelected(true);
          qrAutoSize.setText("Automatic Resizing");
          qrAutoSize.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  qrAutoSizeActionPerformed(evt);
              }
          });
  
          qrButtonGroup.add(qrUserSize);
          qrUserSize.setText("Adjust Size To:");
          qrUserSize.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  qrUserSizeActionPerformed(evt);
              }
          });
  
          qrButtonGroup.add(qrUserEcc);
          qrUserEcc.setText("Add Minimum Error Correction:");
          qrUserEcc.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  qrUserEccActionPerformed(evt);
              }
          });
  
          qrUserSizeCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "21 X 21 (Version 1)", "25 X 25 (Version 2)", "29 X 29 (Version 3)", "33 X 33 (Version 4)", "37 X 37 (Version 5)", "41 X 41 (Version 6)", "45 X 45 (Version 7)", "49 X 49 (Version 8)", "53 X 53 (Version 9)", "57 X 57 (Version 10)", "61 X 61 (Version 11)", "65 X 65 (Version 12)", "69 X 69 (Version 13)", "73 X 73 (Version 14)", "77 X 77 (Version 15)", "81 X 81 (Version 16)", "85 X 85 (Version 17)", "89 X 89 (Version 18)", "93 X 93 (Version 19)", "97 X 97 (Version 20)", "101 X 101 (Version 21)", "105 X 105 (Version 22)", "109 X 109 (Version 23)", "113 X 113 (Version 24)", "117 X 117 (Version 25)", "121 X 121 (Version 26)", "125 X 125 (Version 27)", "129 X 129 (Version 28)", "133 X 133 (Version 29)", "137 X 137 (Version 30)", "141 X 141 (Version 31)", "145 X 145 (Version 32)", "149 X 149 (Version 33)", "153 X 153 (Version 34)", "157 X 157 (Version 35)", "161 X 161 (Version 36)", "165 X 165 (Version 37)", "169 X 169 (Version 38)", "173 X 173 (Version 39)", "177 X 177 (Version 40)" }));
          qrUserSizeCombo.setEnabled(false);
          qrUserSizeCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  qrUserSizeComboActionPerformed(evt);
              }
          });
  
          qrUserEccCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Approx 20% (Level L)", "Approx 37% (Level M)", "Approx 55% (Level Q)", "Approx 65% (Level H)" }));
          qrUserEccCombo.setEnabled(false);
          qrUserEccCombo.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  qrUserEccComboActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout qrPanelLayout = new javax.swing.GroupLayout(qrPanel);
          qrPanel.setLayout(qrPanelLayout);
          qrPanelLayout.setHorizontalGroup(
              qrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(qrPanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(qrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                      .addComponent(qrAutoSize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(qrUserSize, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                      .addComponent(qrUserEcc, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addGroup(qrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(qrUserSizeCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(qrUserEccCombo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addContainerGap())
          );
          qrPanelLayout.setVerticalGroup(
              qrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(qrPanelLayout.createSequentialGroup()
                  .addComponent(qrAutoSize)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(qrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(qrUserSize)
                      .addComponent(qrUserSizeCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(qrPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(qrUserEcc)
                      .addComponent(qrUserEccCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                  .addContainerGap())
          );
  
          compositePanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Composite Component"));
  
          compositeModeLabel.setText("Composite Component Mode:");
  
          compositeUserMode.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Automatic", "CC-A", "CC-B", "CC-C" }));
          compositeUserMode.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  compositeUserModeActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout compositePanelLayout = new javax.swing.GroupLayout(compositePanel);
          compositePanel.setLayout(compositePanelLayout);
          compositePanelLayout.setHorizontalGroup(
              compositePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(compositePanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addComponent(compositeModeLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 172, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(compositeUserMode, javax.swing.GroupLayout.PREFERRED_SIZE, 350, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addContainerGap())
          );
          compositePanelLayout.setVerticalGroup(
              compositePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(compositePanelLayout.createSequentialGroup()
                  .addComponent(compositeModeLabel)
                  .addGap(0, 0, Short.MAX_VALUE))
              .addComponent(compositeUserMode, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
          );
  
          javax.swing.GroupLayout attributeScrollPanelLayout = new javax.swing.GroupLayout(attributeScrollPanel);
          attributeScrollPanel.setLayout(attributeScrollPanelLayout);
          attributeScrollPanelLayout.setHorizontalGroup(
              attributeScrollPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addComponent(aztecPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(channelPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(code39Panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(codeOnePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(datamatrixPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(maxicodePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(microPdfPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(microQrPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(msiPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(pdfPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(qrPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(compositePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(gridmatrixPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
              .addComponent(databarPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
          );
          attributeScrollPanelLayout.setVerticalGroup(
              attributeScrollPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(attributeScrollPanelLayout.createSequentialGroup()
                  .addComponent(aztecPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(channelPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(code39Panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(codeOnePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(compositePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(datamatrixPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(gridmatrixPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(databarPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(maxicodePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(microPdfPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(microQrPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(msiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(pdfPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(qrPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addContainerGap(168, Short.MAX_VALUE))
          );
  
          attributeScrollPane.setViewportView(attributeScrollPanel);
  
          chkReaderInit.setText("Add reader initialisation");
          chkReaderInit.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  chkReaderInitActionPerformed(evt);
              }
          });
  
          cmbHrtPosition.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Below symbol", "Above symbol", "Don't display" }));
          cmbHrtPosition.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  cmbHrtPositionActionPerformed(evt);
              }
          });
  
          txtShowHrt.setText("Show human readable text:");
  
          lblXDimension.setText("X Dimension:");
  
          lblXDimensionPixels.setText("Pixels");
  
          lblBorderWidth.setText("Border Width:");
  
          lblWhitespaceWidth.setText("Whitespace Width:");
  
          txtXDimension.setText("4");
          txtXDimension.addFocusListener(new java.awt.event.FocusAdapter() {
              @Override
              public void focusLost(java.awt.event.FocusEvent evt) {
                  txtXDimensionFocusLost(evt);
              }
          });
  
          txtBorderWidth.setText("5");
          txtBorderWidth.addFocusListener(new java.awt.event.FocusAdapter() {
              @Override
              public void focusLost(java.awt.event.FocusEvent evt) {
                  txtBorderWidthFocusLost(evt);
              }
          });
  
          txtWhitespaceWidth.setText("0");
          txtWhitespaceWidth.addFocusListener(new java.awt.event.FocusAdapter() {
              @Override
              public void focusLost(java.awt.event.FocusEvent evt) {
                  txtWhitespaceWidthFocusLost(evt);
              }
          });
  
          javax.swing.GroupLayout attributePanelLayout = new javax.swing.GroupLayout(attributePanel);
          attributePanel.setLayout(attributePanelLayout);
          attributePanelLayout.setHorizontalGroup(
              attributePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addComponent(attributeScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 846, Short.MAX_VALUE)
              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, attributePanelLayout.createSequentialGroup()
                  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(inkButton, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(paperButton)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(resetColourButton, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addGap(122, 122, 122))
              .addGroup(attributePanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(attributePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addGroup(attributePanelLayout.createSequentialGroup()
                          .addComponent(encodeInfoArea, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                          .addContainerGap())
                      .addGroup(attributePanelLayout.createSequentialGroup()
                          .addComponent(txtShowHrt, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                          .addGap(18, 18, 18)
                          .addComponent(cmbHrtPosition, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE)
                          .addGap(55, 55, 55)
                          .addComponent(chkReaderInit, javax.swing.GroupLayout.PREFERRED_SIZE, 230, javax.swing.GroupLayout.PREFERRED_SIZE)
                          .addGap(30, 30, 30))
                      .addGroup(attributePanelLayout.createSequentialGroup()
                          .addComponent(lblXDimension)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                          .addComponent(txtXDimension, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE)
                          .addGap(3, 3, 3)
                          .addComponent(lblXDimensionPixels)
                          .addGap(81, 81, 81)
                          .addComponent(lblBorderWidth)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                          .addComponent(txtBorderWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                          .addComponent(lblWhitespaceWidth)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                          .addComponent(txtWhitespaceWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                          .addGap(71, 71, 71))))
          );
          attributePanelLayout.setVerticalGroup(
              attributePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(attributePanelLayout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(attributePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(inkButton)
                      .addComponent(paperButton)
                      .addComponent(resetColourButton))
                  .addGroup(attributePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addGroup(attributePanelLayout.createSequentialGroup()
                          .addGap(6, 6, 6)
                          .addGroup(attributePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                              .addComponent(chkReaderInit)
                              .addComponent(txtShowHrt)))
                      .addGroup(attributePanelLayout.createSequentialGroup()
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                          .addComponent(cmbHrtPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                  .addGap(9, 9, 9)
                  .addGroup(attributePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(lblWhitespaceWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addGroup(attributePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                          .addComponent(lblXDimension)
                          .addComponent(lblXDimensionPixels)
                          .addComponent(lblBorderWidth)
                          .addComponent(txtXDimension, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                          .addComponent(txtBorderWidth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                          .addComponent(txtWhitespaceWidth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addComponent(attributeScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 345, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 38, Short.MAX_VALUE)
                  .addComponent(encodeInfoArea, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addContainerGap())
          );
  
          mainTabs.addTab("Attributes", attributePanel);
  
          exitButton.setText("Exit");
          exitButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  exitButtonActionPerformed(evt);
              }
          });
  
          saveButton.setText("Save");
          saveButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  saveButtonActionPerformed(evt);
              }
          });
  
          aboutButton.setText("About");
          aboutButton.addActionListener(new java.awt.event.ActionListener() {
              @Override
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  aboutButtonActionPerformed(evt);
              }
          });
  
          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(symbolPane, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addGroup(layout.createSequentialGroup()
                          .addComponent(aboutButton)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                          .addComponent(saveButton)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                          .addComponent(exitButton))
                      .addComponent(mainTabs))
                  .addContainerGap())
          );
          layout.setVerticalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                      .addComponent(symbolPane)
                      .addGroup(layout.createSequentialGroup()
                          .addComponent(mainTabs)
                          .addGap(11, 11, 11)
                          .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                              .addComponent(exitButton)
                              .addComponent(saveButton)
                              .addComponent(aboutButton))
                          .addGap(5, 5, 5)))
                  .addContainerGap())
          );
  
          pack();
      }