/** * The tester class for the DNDList. This class creates the lists, * positions them in a frame, populates the list with the default * data. * * @version 1.0 * */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TestDND { public static void main (String args[]) { TestDND testDND = new TestDND(); } /** * constructor * creates the frame, the lists in it and sets the data in the lists */ public TestDND() { JFrame f = new JFrame("Drag and Drop Lists"); DNDList sourceList = new DNDList(); // add data to the source List DefaultListModel sourceModel = new DefaultListModel(); sourceModel.addElement( "Source Item1"); sourceModel.addElement( "Source Item2"); sourceModel.addElement( "Source Item3"); sourceModel.addElement( "Source Item4"); // gets the panel with the List and a heading for the List JPanel sourcePanel = getListPanel(sourceList, "SourceList", sourceModel); DNDList targetList = new DNDList(); // add data to the target List DefaultListModel targetModel = new DefaultListModel(); targetModel.addElement( "Target Item1"); targetModel.addElement( "Target Item2"); targetModel.addElement( "Target Item3"); targetModel.addElement( "Target Item4"); JPanel targetPanel = getListPanel(targetList, "TargetList", targetModel); JPanel mainPanel = new JPanel(); mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.X_AXIS)); mainPanel.add( sourcePanel ); mainPanel.add( targetPanel ); f.getContentPane().add( mainPanel ); f.setSize (300, 300); f.addWindowListener (new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.setVisible (true); } /** * a convenience method * used for positioning of the ListBox and the Label. * * @param list - the special DND List * @param labelName - the heading for the list * @param listModel - model for the list */ private JPanel getListPanel(DNDList list, String labelName, DefaultListModel listModel ){ JPanel listPanel = new JPanel(); JScrollPane scrollPane = new JScrollPane(list); list.setModel(listModel); JLabel nameListName = new JLabel(labelName ); listPanel.setLayout( new BorderLayout()); listPanel.add(nameListName, BorderLayout.NORTH); listPanel.add( scrollPane, BorderLayout.CENTER); return listPanel; } }