1 /**
2 * 本例结合JList和JScrollPane共同使用
3 * @author Wfei
4 *
5 */
6 public class JListKnow extends JFrame
7 {
8 JList jListKnow01;
9 JList jListKnow02;
10 JScrollPane jScrollPane02;
11
12 JSplitPane jSplitPane;
13 JPanel jPanelTop;
14 JPanel jPanelBottom;
15 public JListKnow()
16 {
17 this.setBounds(300, 100, 500, 500);
18 this.setTitle("JList的两种使用方式:推荐第二种使用方式");
19 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
20
21 jPanelTop = new JPanel();
22 jPanelBottom = new JPanel();
23
24 jSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,jPanelTop,jPanelBottom);
25 jSplitPane.setDividerLocation(225);
26
27 this.add(jSplitPane);
28
29 String[] values = new String[]{"CCCCCC","AAAAAAAA","CCCCCC","DDDDDDD","EEEEEEEEEEEE","FFFFFFFFFFF","HHHHHHHHHHHH"};
30 /********************************JList第一种使用方式*************************************/
31 jListKnow01 = new JList(values);
32
33 //设置默认选择项
34 jListKnow01.setSelectedIndex(1);
35
36 //得到已选择项的索引
37 int index = jListKnow01.getSelectedIndex();//JOptionPane.showMessageDialog(null, index+":被选中了");
38 int[] indexS = jListKnow01.getSelectedIndices();
39 //得到已选择项的值
40 String value = (String) jListKnow01.getSelectedValue();
41 // String[] svalues = (String[]) jListKnow01.getSelectedValues();
42
43 //设置列表的选择模式 默认为多选模式
44 jListKnow01.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
45
46 jPanelTop.add(jListKnow01);
47 /********************************JList第二种使用方式:推荐*************************************/
48 /********************************通过模型构建列表********************************/
49 //实例化模型
50 DefaultListModel defaultListModel = new DefaultListModel();
51 //向模型中添加元素
52 for (int i = 0; i < values.length; i++)
53 {
54 defaultListModel.addElement(values[i]);
55 }
56 //删除模型中所有的元素
57 // defaultListModel.removeAllElements();
58 //根据索引移除模型中的元素,可能会因为没有该索引二报错
59 // defaultListModel.remove(0);
60 //根据值移除模型中的元素,如果存在多个相同的值,则移除第一个索引的值,如果没有,不会报错
61 defaultListModel.removeElement("CCCCCC");
62 //替换制定索引处的元素
63 defaultListModel.setElementAt("哈哈哈", 1);
64 //根据模型实例化出来JList
65 jListKnow02 = new JList(defaultListModel);
66
67 jScrollPane02 = new JScrollPane(jListKnow02);
68
69 jPanelBottom.add(jListKnow02);
70 }
71 public static void main(String[] args)
72 {
73 JListKnow jListKnow = new JListKnow();
74 jListKnow.setVisible(true);
75 }
76 }