private void addProductCheckers(final StringBuffer description, final JPanel checkersPane, final GridBagConstraints gbc) { final ActionListener checkListener = createActionListener(); for (int i = 0; i < allProducts.length; i++) { Product product = allProducts[i]; boolean checked = false; for (Product selectedProduct : selectedProducts) { if (product == selectedProduct) { checked = true; numSelected++; break; } } description.setLength(0); description.append(product.getDescription() == null ? "" : product.getDescription()); final JCheckBox check = new JCheckBox(getDisplayName(product), checked); check.setFont(SMALL_PLAIN_FONT); check.addActionListener(checkListener); final JLabel label = new JLabel(description.toString()); label.setFont(SMALL_ITALIC_FONT); gbc.gridy++; GridBagUtils.addToPanel(checkersPane, check, gbc, "weightx=0,gridx=0"); GridBagUtils.addToPanel(checkersPane, label, gbc, "weightx=1,gridx=1"); checkBoxes[i] = check; } }