ListDemopublic class ListDemo extends DemoModule List Demo. This demo shows that it is not
always necessary to have an array of objects
as big as the size of the list stored.
Indeed, in this example, there is no array
kept for the list data, rather it is generated
on the fly as only those elements are needed. |
Fields Summary |
---|
JList | list | JPanel | prefixList | JPanel | suffixList | Action | prefixAction | Action | suffixAction | GeneratedListModel | listModel | Vector | checkboxes | ImageIcon[] | images |
Constructors Summary |
---|
public ListDemo(SwingSet2 swingset)ListDemo Constructor
super(swingset, "ListDemo", "toolbar/JList.gif");
loadImages();
JLabel description = new JLabel(getString("ListDemo.description"));
getDemoPanel().add(description, BorderLayout.NORTH);
JPanel centerPanel = new JPanel();
centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.X_AXIS));
centerPanel.add(Box.createRigidArea(HGAP10));
getDemoPanel().add(centerPanel, BorderLayout.CENTER);
JPanel listPanel = new JPanel();
listPanel.setLayout(new BoxLayout(listPanel, BoxLayout.Y_AXIS));
listPanel.add(Box.createRigidArea(VGAP10));
centerPanel.add(listPanel);
centerPanel.add(Box.createRigidArea(HGAP30));
// Create the list
list = new JList();
list.setCellRenderer(new CompanyLogoListCellRenderer());
listModel = new GeneratedListModel(this);
list.setModel(listModel);
// Set the preferred row count. This affects the preferredSize
// of the JList when it's in a scrollpane.
list.setVisibleRowCount(22);
// Add list to a scrollpane
JScrollPane scrollPane = new JScrollPane(list);
listPanel.add(scrollPane);
listPanel.add(Box.createRigidArea(VGAP10));
// Add the control panel (holds the prefix/suffix list and prefix/suffix checkboxes)
JPanel controlPanel = createControlPanel();
centerPanel.add(createControlPanel());
// create prefixes and suffixes
addPrefix("Tera", true);
addPrefix("Micro", false);
addPrefix("Southern", false);
addPrefix("Net", true);
addPrefix("YoYo", true);
addPrefix("Northern", false);
addPrefix("Tele", false);
addPrefix("Eastern", false);
addPrefix("Neo", false);
addPrefix("Digi", false);
addPrefix("National", false);
addPrefix("Compu", true);
addPrefix("Meta", true);
addPrefix("Info", false);
addPrefix("Western", false);
addPrefix("Data", false);
addPrefix("Atlantic", false);
addPrefix("Advanced", false);
addPrefix("Euro", false);
addPrefix("Pacific", false);
addPrefix("Mobile", false);
addPrefix("In", false);
addPrefix("Computa", false);
addPrefix("Digital", false);
addPrefix("Analog", false);
addSuffix("Tech", true);
addSuffix("Soft", true);
addSuffix("Telecom", true);
addSuffix("Solutions", false);
addSuffix("Works", true);
addSuffix("Dyne", false);
addSuffix("Services", false);
addSuffix("Vers", false);
addSuffix("Devices", false);
addSuffix("Software", false);
addSuffix("Serv", false);
addSuffix("Systems", true);
addSuffix("Dynamics", true);
addSuffix("Net", false);
addSuffix("Sys", false);
addSuffix("Computing", false);
addSuffix("Scape", false);
addSuffix("Com", false);
addSuffix("Ware", false);
addSuffix("Widgets", false);
addSuffix("Media", false);
addSuffix("Computer", false);
addSuffix("Hardware", false);
addSuffix("Gizmos", false);
addSuffix("Concepts", false);
|
Methods Summary |
---|
public void | addPrefix(java.lang.String prefix, boolean selected)
if(prefixAction == null) {
prefixAction = new UpdatePrefixListAction(listModel);
}
JCheckBox cb = (JCheckBox) prefixList.add(new JCheckBox(prefix));
checkboxes.addElement(cb);
cb.setSelected(selected);
cb.addActionListener(prefixAction);
if(selected) {
listModel.addPrefix(prefix);
}
| public void | addSuffix(java.lang.String suffix, boolean selected)
if(suffixAction == null) {
suffixAction = new UpdateSuffixListAction(listModel);
}
JCheckBox cb = (JCheckBox) suffixList.add(new JCheckBox(suffix));
checkboxes.addElement(cb);
cb.setSelected(selected);
cb.addActionListener(suffixAction);
if(selected) {
listModel.addSuffix(suffix);
}
| public javax.swing.JPanel | createControlPanel()
JPanel controlPanel = new JPanel() {
Insets insets = new Insets(0, 4, 10, 10);
public Insets getInsets() {
return insets;
}
};
controlPanel.setLayout(new BoxLayout(controlPanel, BoxLayout.X_AXIS));
JPanel prefixPanel = new JPanel();
prefixPanel.setLayout(new BoxLayout(prefixPanel, BoxLayout.Y_AXIS));
prefixPanel.add(new JLabel(getString("ListDemo.prefixes")));
JPanel suffixPanel = new JPanel();
suffixPanel.setLayout(new BoxLayout(suffixPanel, BoxLayout.Y_AXIS));
suffixPanel.add(new JLabel(getString("ListDemo.suffixes")));
prefixList = new JPanel() {
Insets insets = new Insets(0, 4, 0, 0);
public Insets getInsets() {
return insets;
}
};
prefixList.setLayout(new BoxLayout(prefixList, BoxLayout.Y_AXIS));
JScrollPane scrollPane = new JScrollPane(prefixList);
scrollPane.getVerticalScrollBar().setUnitIncrement(10);
prefixPanel.add(scrollPane);
prefixPanel.add(Box.createRigidArea(HGAP10));
suffixList = new JPanel() {
Insets insets = new Insets(0, 4, 0, 0);
public Insets getInsets() {
return insets;
}
};
suffixList.setLayout(new BoxLayout(suffixList, BoxLayout.Y_AXIS));
scrollPane = new JScrollPane(suffixList);
scrollPane.getVerticalScrollBar().setUnitIncrement(10);
suffixPanel.add(scrollPane);
suffixPanel.add(Box.createRigidArea(HGAP10));
controlPanel.add(prefixPanel);
controlPanel.add(Box.createRigidArea(HGAP15));
controlPanel.add(suffixPanel);
return controlPanel;
| void | loadImages()
images[0] = createImageIcon("list/red.gif", getString("ListDemo.red"));
images[1] = createImageIcon("list/blue.gif", getString("ListDemo.blue"));
images[2] = createImageIcon("list/yellow.gif", getString("ListDemo.yellow"));
images[3] = createImageIcon("list/green.gif", getString("ListDemo.green"));
images[4] = createImageIcon("list/gray.gif", getString("ListDemo.gray"));
images[5] = createImageIcon("list/cyan.gif", getString("ListDemo.cyan"));
images[6] = createImageIcon("list/magenta.gif", getString("ListDemo.magenta"));
| public static void | main(java.lang.String[] args)main method allows us to run as a standalone demo.
ListDemo demo = new ListDemo(null);
demo.mainImpl();
|
|