import java.awt.BorderLayout; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * Demo that shows how to use the {@link Listmaker} as a JPanel. * * @author Daniele Raffo */ public class ListmakerJPanelDemo { public static void main(String[] args) { final String[] peopleList = new String[] {"Alice", "White Rabbit", "Mad Hatter", "March Hare", "Cheshire Cat", "Tweedledum", "Tweedledee", "Humpty Dumpty", "The Queen of Hearts"}; final String[] invitedList = new String[] {"Alice"}; final JFrame teaFrame = new JFrame("Listmaker JPanel Demo"); teaFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel newContentPane = new JPanel(new BorderLayout()); newContentPane.setOpaque(true); teaFrame.setContentPane(newContentPane); final JTextArea output = new JTextArea(10, 40); output.setEditable(false); output.setLineWrap(true); output.setWrapStyleWord(true); JScrollPane scroll = new JScrollPane(output); final Listmaker lm = new Listmaker(new JLabel("It's always tea time! Make a list of guests for your tea party."), peopleList, invitedList, false, Listmaker.SORT_BOTH); lm.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (Listmaker.PROP_OKCANCEL_BUTTON.equals(evt.getPropertyName())) { output.append(ListmakerDialogDemo.getSelection(lm.getUserChoice())); output.append("\n\n"); } } }); teaFrame.add(lm, BorderLayout.CENTER); teaFrame.add(scroll, BorderLayout.PAGE_END); teaFrame.pack(); teaFrame.setVisible(true); } }