docs: private void initComponents() {
  
          foundModel = new DefaultListModel<>();
          progressModel = new DefaultListModel<>();
          contentPanel = new JPanel();
          secondPanel = new JPanel();
          jScrollPane1 = new JScrollPane();
          jScrollPane2 = new JScrollPane();
          jList1 = new JList<>();
          jList2 = new JList<>();
          jLabel1 = new JLabel();
          jLabel2 = new JLabel();
          jLabel3 = new JLabel();
          firstPanel = new JPanel();
          sourceRootLabel = new JLabel();
          sourceRootBox = new JTextField();
          srcFileIconLabel = new JLabel();
          card1TitleLabel = new JLabel();
          chooser = new JFileChooser();
          browseButton = new JButton();
          card1Explanation1Label = new JLabel();
          card1Explanation2Label = new JLabel();
          card1Explanation3Label = new JLabel();
          previousButton = new JButton();
          nextButton = new JButton();
          finshButton = new JButton();
          errorMessageLabel = new JLabel();
          Dimension d = new Dimension(600, 425);
          this.setPreferredSize(d);
          setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
          setTitle("SpotBugs Source Directory Configuration Wizard");
          getContentPane().setLayout(null);
  
          jList2.setModel(progressModel);
  
          contentPanel.setLayout(new CardLayout());
  
          secondPanel.setLayout(null);
  
          jScrollPane1.setViewportView(jList1);
  
          secondPanel.add(jScrollPane1);
          jScrollPane1.setBounds(250, 50, 258, 130);
  
          jLabel1.setFont(new java.awt.Font("SansSerif", 0, 14));
          jLabel1.setText("Source directories found:");
          secondPanel.add(jLabel1);
          jLabel1.setBounds(250, 30, 173, 17);
  
          jLabel2.setFont(new java.awt.Font("SansSerif", 0, 14));
          jLabel2.setText("Click Finish to accept this");
          secondPanel.add(jLabel2);
          jLabel2.setBounds(40, 90, 173, 17);
  
          jLabel3.setFont(new java.awt.Font("SansSerif", 0, 14));
          jLabel3.setText("list of source directories");
          secondPanel.add(jLabel3);
          jLabel3.setBounds(40, 110, 165, 17);
  
          contentPanel.add(secondPanel, "card2");
  
          jScrollPane2.setViewportView(jList2);
  
          firstPanel.add(jScrollPane2);
          jScrollPane2.setBounds(200, 250, 250, 75);
  
          firstPanel.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
          firstPanel.setLayout(null);
  
          sourceRootLabel.setText("Top-level source directory:");
          firstPanel.add(sourceRootLabel);
          sourceRootLabel.setBounds(30, 220, 168, 17);
          firstPanel.add(sourceRootBox);
          sourceRootBox.setBounds(200, 210, 250, 29);
  
          srcFileIconLabel.setIcon(new ImageIcon("/usr/share/icons/default.kde/128x128/mimetypes/source_java.png")); // NOI18N
          firstPanel.add(srcFileIconLabel);
          srcFileIconLabel.setBounds(50, 80, 128, 128);
  
          card1TitleLabel.setFont(new java.awt.Font("Dialog", 1, 24));
          card1TitleLabel.setText("Where are your source files?");
          firstPanel.add(card1TitleLabel);
          card1TitleLabel.setBounds(150, 20, 353, 29);
  
          browseButton.setText("Browse...");
          firstPanel.add(browseButton);
  
          browseButton.addActionListener(evt -> {
              chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
              chooser.setMultiSelectionEnabled(true);
              chooser.setApproveButtonText("Choose");
              chooser.setDialogTitle("Choose the directory");
  
              if (chooser.showOpenDialog(SourceDirectoryWizard.this) == JFileChooser.APPROVE_OPTION) {
                  File[] selectedFiles = chooser.getSelectedFiles();
                  for (File selectedFile : selectedFiles) {
                      sourceRootBox.setText(selectedFile.getAbsolutePath());
                  }
                  nextButton.setEnabled(!"".equals(sourceRootBox.getText()));
              }
          });
  
          browseButton.setBounds(450, 210, 100, 28);
  
          card1Explanation1Label.setFont(new java.awt.Font("SansSerif", 0, 14));
          card1Explanation1Label.setText("Enter the top-level directory");
          firstPanel.add(card1Explanation1Label);
          card1Explanation1Label.setBounds(230, 80, 193, 17);
  
          card1Explanation2Label.setFont(new java.awt.Font("SansSerif", 0, 14));
          card1Explanation2Label.setText("containing your application's");
          firstPanel.add(card1Explanation2Label);
          card1Explanation2Label.setBounds(230, 100, 198, 17);
  
          card1Explanation3Label.setFont(new java.awt.Font("SansSerif", 0, 14));
          card1Explanation3Label.setText("source files.");
          firstPanel.add(card1Explanation3Label);
          card1Explanation3Label.setBounds(230, 120, 82, 17);
  
          contentPanel.add(firstPanel, "card1");
  
          getContentPane().add(contentPanel);
          contentPanel.setBounds(0, 0, 750, 300);
  
          previousButton.setText("<< Previous");
          previousButton.addActionListener(evt -> previousButtonActionPerformed(evt));
          getContentPane().add(previousButton);
          previousButton.setBounds(150, 350, 100, 29);
  
          nextButton.setText("Next >>");
          nextButton.addActionListener(evt -> nextButtonActionPerformed(evt));
          getContentPane().add(nextButton);
          nextButton.setBounds(250, 350, 100, 29);
  
          finshButton.setText("Finish");
          finshButton.addActionListener(evt -> finshButtonActionPerformed(evt));
          getContentPane().add(finshButton);
          finshButton.setBounds(350, 350, 100, 29);
  
          errorMessageLabel.setFont(new java.awt.Font("SansSerif", 1, 14)); // NOI18N
          errorMessageLabel.setForeground(new java.awt.Color(255, 0, 0));
          getContentPane().add(errorMessageLabel);
          errorMessageLabel.setBounds(0, 300, 500, 20);
  
          pack();
      }