摘 要 本文針對(duì)Java語(yǔ)言的特點(diǎn),提出了在程序中動(dòng)態(tài)添加和刪除列表框中的列表元素并在結(jié)束操作時(shí)獲取列表元素的實(shí)現(xiàn)方法,并給出了具體開發(fā)的實(shí)例。
關(guān)鍵詞 Java 列表框
引言 Java是一種純粹的面向?qū)ο蟮木幊陶Z(yǔ)言,由于具有良好的移植性已經(jīng)成為程序員開發(fā)應(yīng)用系統(tǒng)的常用工具。在開發(fā)人機(jī)交互界面時(shí),程序員與用戶都想盡量少的輸入數(shù)據(jù)。如果有很多固定的選項(xiàng)供用戶選擇,列表框是很好的解決方案。用戶在列表框中選擇所需要的列表元素,可以在另外一個(gè)列表框中顯示出來(lái),后一列表框中的元素就要能夠動(dòng)態(tài)的添加和刪除,最后需要獲得用戶選擇的列表元素值進(jìn)行其他的運(yùn)算或者處理。由于Java語(yǔ)言的特點(diǎn),解決這個(gè)問題還需要一定的技巧,下面給出了對(duì)這一問題的
解決方法。
實(shí)現(xiàn)方法 1、初始化
首先添加JScrollPane的實(shí)例jScrollPane1,DefaultListModel 實(shí)例model1,然后使用model1生成JList的實(shí)例。在對(duì)話框合適的位置添加jScrollPane1,調(diào)整到合適的大小,然后在jScrollPane1上增加jList1。這樣帶有滾動(dòng)條的列表框就添加完成了。
初始化一個(gè)Vector實(shí)例用來(lái)存儲(chǔ)選擇的列表元素。由于選擇的元素具有不確定性,所以使用Vector這種存儲(chǔ)空間可以動(dòng)態(tài)變化的
數(shù)據(jù)結(jié)構(gòu)。Vector初始化實(shí)例時(shí)不能指定初始化長(zhǎng)度,所以增加一個(gè)整形變量指示Vector中列表中對(duì)象的個(gè)數(shù)。
2、添加和刪除列表元素
列表框中的元素添加和刪除是通過model1的addElement方法和removeElement方法實(shí)現(xiàn)的。通過列表框的屬性selectionMode可以設(shè)置列表框單選,單個(gè)間斷選擇和多個(gè)間斷選擇。Vector中存儲(chǔ)的對(duì)象是和選擇的元素相對(duì)應(yīng)的,對(duì)象的添加和刪除是通過addElement方法和removeElement方法實(shí)現(xiàn)的。
3、獲得選擇元素
在點(diǎn)擊“確定”
按鈕以后,需要將Vector實(shí)例中的對(duì)象轉(zhuǎn)化成為需要的數(shù)據(jù)類型。
實(shí)例解析 現(xiàn)以圖1所示為例對(duì)具體實(shí)現(xiàn)方法進(jìn)行描述。由圖1中左面列表框中選擇可用元素,選擇方式設(shè)為多個(gè)間斷選擇,由于其他兩種方式相對(duì)簡(jiǎn)單,實(shí)現(xiàn)方法可在這個(gè)實(shí)例的基礎(chǔ)上修改得到。選定元素之后,點(diǎn)擊“>>”按鈕,選擇的元素就會(huì)在右面的列表框顯示出來(lái)。如果多選或者錯(cuò)選,可在右面的列表框中選定元素后點(diǎn)擊“<<”按鈕移去選定的元素。

圖1 列表框示例
具體程序?qū)崿F(xiàn)方法如下。
1) 初始化(僅給出初始化左面的列表框)
private JScrollPane jScrollPane1 = new JScrollPane(); DefaultListModel model1 = new DefaultListModel(); private JList jList1 = new JList(model1); private Vector selectedElement = new Vector(); private int selectedNumber = 0; |
2)添加和刪除元素
向右面的列表框中添加元素,也就是單擊“>>”按鈕執(zhí)行的操作。
for(int i = 0;i< jList1.getSelectedValues().length; i++) { //選擇多個(gè)元素,逐個(gè)進(jìn)行操作 selectedElement.addElement(jList1.getSelectedValues()[i]); //Vector實(shí)例中增加對(duì)象 model2.addElement(jList1.getSelectedValues()[i]); //右面的列表中增加元素 selectedNumber = selectedNumber + 1; //選定元素個(gè)數(shù)加1 selectedElement.setSize(selectedNumber); //設(shè)定Vector實(shí)例的長(zhǎng)度 } |
從右面的列表框中選擇元素進(jìn)行刪除,也就是單擊“<<”按鈕執(zhí)行的操作。
for(int i = 0;i< jList2.getSelectedValues().length; i++) { selectedElement.removeElement(jList2.getSelectedValues()[0]); model2.removeElement(jList2.getSelectedValues()[0]); //減少元素,需要注意每次移去的都是第0個(gè)元素 selectedNumber = selectedNumber - 1; selectedElement.setSize(selectedNumber); } |
3)獲取選擇的元素
以將選定的元素轉(zhuǎn)換成
字符串類型為例,這段代碼一般放在“確定”按鈕的單擊操作里面。
String[] selectedProduct = new String[selectedElement.size()]; for (int i = 0; i < selectedElement.size(); i++) { selectedProduct[i] = (String)selectedElement.elementAt(i); //強(qiáng)制類型轉(zhuǎn)換成為字符串 } |
總結(jié) 本文給出了實(shí)現(xiàn)Java列表框中元素動(dòng)態(tài)添加、刪除操作和獲得用戶選擇的元素值的方法和實(shí)例,解決了Java程序設(shè)計(jì)中的列表框元素的動(dòng)態(tài)變化問題。