private JPanel createSearchPanel(final FilteredJList classes) {
        JPanel search = new JPanel();
        search.setLayout(new BorderLayout());
        search.add(new JLabel("Choose a Demo to start:      Find: "), BorderLayout.WEST);
        final javax.swing.JTextField jtf = new javax.swing.JTextField();
        jtf
            .getDocument()
            .addDocumentListener(
                new DocumentListener() {
                    @Override
                    public void removeUpdate(DocumentEvent e) {
                        classes.setFilter(jtf.getText());
                    }

                    @Override
                    public void insertUpdate(DocumentEvent e) {
                        classes.setFilter(jtf.getText());
                    }

                    @Override
                    public void changedUpdate(DocumentEvent e) {
                        classes.setFilter(jtf.getText());
                    }
                }
            );
        jtf.addActionListener(
            new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    selectedClass = classes.getSelectedValuesList();
                    startApp(selectedClass);
                }
            }
        );
        final JCheckBox showSettingCheck = new JCheckBox("Show Setting");
        showSettingCheck.setSelected(true);
        showSettingCheck.addActionListener(
            new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    showSetting = showSettingCheck.isSelected();
                }
            }
        );
        jtf.setPreferredSize(new Dimension(100, 25));
        search.add(jtf, BorderLayout.CENTER);
        search.add(showSettingCheck, BorderLayout.EAST);
        return search;
    }
Start the chooser.

@param args
           command line parameters
jme3-examples/src/main/java/jme3test/TestChooser.java