摘 要 本文針對Java語言的特點,提出了在程序中動態添加和刪除列表框中的列表元素並在結束操作時獲取列表元素的實現方法,並給出了具體開發的實例。
要害詞 Java 列表框
引言 Java是一種純粹的面向對象的編程語言,由於具有良好的移植性已經成為程序員開發應用系統的常用工具。在開發人機交互界面時,程序員與用戶都想盡量少的輸入數據。假如有很多固定的選項供用戶選擇,列表框是很好的解決方案。用戶在列表框中選擇所需要的列表元素,可以在另外一個列表框中顯示出來,後一列表框中的元素就要能夠動態的添加和刪除,最後需要獲得用戶選擇的列表元素值進行其他的運算或者處理。由於Java語言的特點,解決這個問題還需要一定的技巧,下面給出了對這一問題的解決方法。
實現方法 1、初始化
首先添加JScrollPane的實例jScrollPane1,DefaultListModel 實例model1,然後使用model1生成JList的實例。在對話框合適的位置添加jScrollPane1,調整到合適的大小,然後在jScrollPane1上增加jList1。這樣帶有滾動條的列表框就添加完成了。
初始化一個Vector實例用來存儲選擇的列表元素。由於選擇的元素具有不確定性,所以使用Vector這種存儲空間可以動態變化的數據結構。Vector初始化實例時不能指定初始化長度,所以增加一個整形變量指示Vector中列表中對象的個數。
2、添加和刪除列表元素
列表框中的元素添加和刪除是通過model1的addElement方法和removeElement方法實現的。通過列表框的屬性selectionMode可以設置列表框單選,單個間斷選擇和多個間斷選擇。Vector中存儲的對象是和選擇的元素相對應的,對象的添加和刪除是通過addElement方法和removeElement方法實現的。
3、獲得選擇元素
在點擊“確定”按鈕以後,需要將Vector實例中的對象轉化成為需要的數據類型。
實例解析 現以圖1所示為例對具體實現方法進行描述。由圖1中左面列表框中選擇可用元素,選擇方式設為多個間斷選擇,由於其他兩種方式相對簡單,實現方法可在這個實例的基礎上修改得到。選定元素之後,點擊“>>”按鈕,選擇的元素就會在右面的列表框顯示出來。假如多選或者錯選,可在右面的列表框中選定元素後點擊“<<”按鈕移去選定的元素。
圖1 列表框示例
具體程序實現方法如下。
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)添加和刪除元素
向右面的列表框中添加元素,也就是單擊“>>”按鈕執行的操作。
for(int i = 0;i< jList1.getSelectedValues().length; i++)
{
//選擇多個元素,逐個進行操作
selectedElement.addElement(jList1.getSelectedValues()[i]); //Vector實例中增加對象
model2.addElement(jList1.getSelectedValues()[i]); //右面的列表中增加元素
selectedNumber = selectedNumber + 1; //選定元素個數加1
selectedElement.setSize(selectedNumber); //設定Vector實例的長度
}
從右面的列表框中選擇元素進行刪除,也就是單擊“<<”按鈕執行的操作。
for(int i = 0;i< jList2.getSelectedValues().length; i++)
{
selectedElement.removeElement(jList2.getSelectedValues()[0]);
model2.removeElement(jList2.getSelectedValues()[0]);
//減少元素,需要注重每次移去的都是第0個元素
selectedNumber = selectedNumber - 1;
selectedElement.setSize(selectedNumber);
}
3)獲取選擇的元素
以將選定的元素轉換成字符串類型為例,這段代碼一般放在“確定”按鈕的單擊操作裡面。
String[] selectedProdUCt = new String[selectedElement.size()];
for (int i = 0; i < selectedElement.size(); i++) {
selectedProduct[i] = (String)selectedElement.elementAt(i); //強制類型轉換成為字符串
}
總結 本文給出了實現Java列表框中元素動態添加、刪除操作和獲得用戶選擇的元素值的方法和實例,解決了Java程序設計中的列表框元素的動態變化問題。