/*
Java Swing, 2nd Edition
By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole
ISBN: 0-596-00408-7
Publisher: O'Reilly
*/
// SimpleList2.java
//A variation on SimpleList. This version modifies the selecion model used.
//
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListSelectionModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class SimpleList2 extends JPanel {
String label[] = { "Zero", "One", "Two", "Three", "Four", "Five", "Six",
"Seven", "Eight", "Nine", "Ten", "Eleven" };
JList list;
public SimpleList2() {
setLayout(new BorderLayout());
list = new JList(label);
JButton button = new JButton("Print");
JScrollPane pane = new JScrollPane(list);
DefaultListSelectionModel m = new DefaultListSelectionModel();
m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
m.setLeadAnchorNotificationEnabled(false);
list.setSelectionModel(m);
list.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
System.out.println(e.toString());
}
});
button.addActionListener(new PrintListener());
add(pane, BorderLayout.NORTH);
add(button, BorderLayout.SOUTH);
}
public static void main(String s[]) {
JFrame frame = new JFrame("List Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new SimpleList2());
frame.pack();
frame.setVisible(true);
}
// An inner class to respond to clicks on the Print button
class PrintListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
int selected[] = list.getSelectedIndices();
System.out.println("Selected Elements: ");
for (int i = 0; i < selected.length; i++) {
String element = (String) list.getModel().getElementAt(
selected[i]);
System.out.println(" " + element);
}
}
}
}
|