/** * This example demonstrates how to create a JList whose contents * are dynamic. The list has a KeyListener that adds one character * list elements when any key is typed, the last element is removed * when backspace is typed. * * Tested against swing-1.1, JDK1.1.7. */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; /** * Create a JList whose KeyListener adds/removes elements from * the lists DefaultListModel. */ public class DynamicList { public static void main(String[] args) { final DefaultListModel model = new DefaultListModel(); KeyListener keyTypedListener = new KeyAdapter() { public void keyTyped(KeyEvent e) { if ((e.getKeyChar() == '\b') && (model.getSize() > 0)) { model.removeElementAt(model.getSize() - 1); } else if (e.getKeyChar() != '\b') { model.addElement("Added " + e.getKeyChar()); } } }; JList list = new JList(model); list.addKeyListener(keyTypedListener); JFrame frame = new JFrame("DefaultListModel JList Demo"); WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }; frame.addWindowListener(l); JScrollPane scrollPane = new JScrollPane(list); scrollPane.setBorder(new TitledBorder("Type to add list elements, backspace to remove")); frame.getContentPane().add(scrollPane, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } }