1、 Java中Jlist這個Swing組件是用來展示一組項目,供用戶選擇的。
可以將要展示的項目放在一個列上,也可以展示在多一個列中。有時候要展示的項目太多,組件的尺寸又不能隨意擴大,所以,該組件常常是放在Scroll pane容器中的。
2、 初始化一個Jlist組件:
下面是定義一個Jlist組件,并將它放在JscrollPane容器中的簡單代碼:
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(65, 65, 122, 144);
String listItem[] = {"蘋果","香蕉","橘子","核桃"};
Jlist list = new JList(listItem);
scrollPane.setViewportView(list);
初始化一個Jlist組件時有三種方式,第一種就是上面這個例子:給構(gòu)造函數(shù)傳入一個數(shù)組型的參數(shù)。它的原型是:
public JList(Object[] listData)
第二種方式是向構(gòu)造函數(shù)傳入一個Vector型的參數(shù),例如:
Vector v = new Vector();
v.add("廣東");
v.add("上海");
v.add("深圳");
Jlist list = new JList(v);
它的原型是:public JList(Vector> listData)
如果用上面這兩種方式來初始化一個Jlist組件的話,那么其中所顯示的各個項目就被固定了,不能在程序中被隨意增加或者刪除其中任何一個項目了。但是在程序中常常需要動態(tài)決定該組件中顯示哪些項目,這時就應該指定Jlist的數(shù)據(jù)模型(list’s model)了。因為在Jlist中所顯示的所有項目,都是“存儲”在和它捆綁在一起的一個ListModel中的。在程序中要對Jlist中的項目進行諸如增加、刪除等操作時,都不是直接在Jlist中進行的,而是在這個ListModel中完成的??梢杂袃煞N方式指定該組件的模型,一種是在定義該組件時作為參數(shù)傳入。它的原型是:
public JList(ListModel dataModel)
另一種是調(diào)用方法:setModel來單獨設置。如下示例代碼:
DefaultListModel listModel = new DefaultListModel();
listModel.addElement("Debbie Scott");
listModel.addElement("Scott Hommel");
listModel.addElement("Alan Sommerer");
Jlist list = new JList(listModel);
這時,可以通過調(diào)用數(shù)據(jù)模型的下列方法來隨時改變組件中所顯示的項目(當然,這些方法都屬于ListModel的方法):
public void add(int index, Object element);//在指定位置插入項目
public void addElement(Object obj);//在最后面插入項目
public boolean removeElement(Object obj);//刪除最先匹配的項目
public Object remove(int index);//刪除指定位置的項目
public Object get(int index);//獲得指定位置的項目
public Object set(int index, Object element);//修改指定位置的項目
3、 設置選擇模式
Jlist組件有三種選擇項目的模式:
第一種是:SINGLE_SELECTION:
顯然,這種模式下每次只允許選擇一個項目。
第二種是:SINGLE_INTERVAL_SELECTION:
這種模式下允許連續(xù)選擇多個項目。
第三種是:MULTIPLE_INTERVAL_SELECTION:
它允許間隔開地選擇多個項目。這種模式是默認的選擇模式,如果你要用上面兩種模式,則需要顯式地指定:
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
4、 操作用戶選擇的內(nèi)容:
public Object getSelectedValue();//可以返回用戶選擇的項目的內(nèi)容
public int getSelectedIndex();//返回用戶選擇的項目的下標,從0開始
public Object[] getSelectedValues()
可以將要展示的項目放在一個列上,也可以展示在多一個列中。有時候要展示的項目太多,組件的尺寸又不能隨意擴大,所以,該組件常常是放在Scroll pane容器中的。
2、 初始化一個Jlist組件:
下面是定義一個Jlist組件,并將它放在JscrollPane容器中的簡單代碼:
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(65, 65, 122, 144);
String listItem[] = {"蘋果","香蕉","橘子","核桃"};
Jlist list = new JList(listItem);
scrollPane.setViewportView(list);
初始化一個Jlist組件時有三種方式,第一種就是上面這個例子:給構(gòu)造函數(shù)傳入一個數(shù)組型的參數(shù)。它的原型是:
public JList(Object[] listData)
第二種方式是向構(gòu)造函數(shù)傳入一個Vector型的參數(shù),例如:
Vector
v.add("廣東");
v.add("上海");
v.add("深圳");
Jlist list = new JList(v);
它的原型是:public JList(Vector> listData)
如果用上面這兩種方式來初始化一個Jlist組件的話,那么其中所顯示的各個項目就被固定了,不能在程序中被隨意增加或者刪除其中任何一個項目了。但是在程序中常常需要動態(tài)決定該組件中顯示哪些項目,這時就應該指定Jlist的數(shù)據(jù)模型(list’s model)了。因為在Jlist中所顯示的所有項目,都是“存儲”在和它捆綁在一起的一個ListModel中的。在程序中要對Jlist中的項目進行諸如增加、刪除等操作時,都不是直接在Jlist中進行的,而是在這個ListModel中完成的??梢杂袃煞N方式指定該組件的模型,一種是在定義該組件時作為參數(shù)傳入。它的原型是:
public JList(ListModel dataModel)
另一種是調(diào)用方法:setModel來單獨設置。如下示例代碼:
DefaultListModel listModel = new DefaultListModel();
listModel.addElement("Debbie Scott");
listModel.addElement("Scott Hommel");
listModel.addElement("Alan Sommerer");
Jlist list = new JList(listModel);
這時,可以通過調(diào)用數(shù)據(jù)模型的下列方法來隨時改變組件中所顯示的項目(當然,這些方法都屬于ListModel的方法):
public void add(int index, Object element);//在指定位置插入項目
public void addElement(Object obj);//在最后面插入項目
public boolean removeElement(Object obj);//刪除最先匹配的項目
public Object remove(int index);//刪除指定位置的項目
public Object get(int index);//獲得指定位置的項目
public Object set(int index, Object element);//修改指定位置的項目
3、 設置選擇模式
Jlist組件有三種選擇項目的模式:
第一種是:SINGLE_SELECTION:
顯然,這種模式下每次只允許選擇一個項目。
第二種是:SINGLE_INTERVAL_SELECTION:
這種模式下允許連續(xù)選擇多個項目。
第三種是:MULTIPLE_INTERVAL_SELECTION:
它允許間隔開地選擇多個項目。這種模式是默認的選擇模式,如果你要用上面兩種模式,則需要顯式地指定:
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
4、 操作用戶選擇的內(nèi)容:
public Object getSelectedValue();//可以返回用戶選擇的項目的內(nèi)容
public int getSelectedIndex();//返回用戶選擇的項目的下標,從0開始
public Object[] getSelectedValues()