2013-03-10 63 views
-1

這是代碼,我到目前爲止,所以我想將選定的項目從一個列表移動到另一個列表,即使我不知道,就像在第二個列表中一樣,我需要getElement或addElement方法...... 請幫助me..you可以只給我解釋一下,我能做些什麼,以一個元素從列表中移動到另一個,提供一個示例如何將所選項目從一個默認列表移動到另一個defalut列表

//this is the code, just to the set the position 
GridBagConstraints gridConstraints; 
citiesLabel.setText("Destination City"); 
gridConstraints = new GridBagConstraints(); 
gridConstraints.gridx = 0; 
gridConstraints.gridy = 0; 

// below code is also set the position of the list 

gridConstraints.insets = new Insets(10, 0, 0, 0); 
getContentPane().add(citiesLabel, gridConstraints); 
citiesScrollPane.setPreferredSize(new Dimension(150, 100)); 
citiesScrollPane.setViewportView(citiesList); 
gridConstraints = new GridBagConstraints(); 
gridConstraints.gridx = 0; 
gridConstraints.gridy = 1; 
gridConstraints.insets = new Insets(10, 10, 10, 10); 
getContentPane().add(citiesScrollPane, gridConstraints); 

**This is my first list , which have all the values , that i want to move** 

final DefaultListModel citiesListModel = new DefaultListModel(); 
citiesListModel.addElement("San Diego"); 
citiesListModel.addElement("Los Angeles"); 
citiesListModel.addElement("Orange County"); 
citiesListModel.addElement("Ontario"); 
citiesListModel.addElement("Bakersfield"); 
citiesListModel.addElement("Oakland"); 
citiesListModel.addElement("Sacramento"); 
citiesListModel.addElement("San Jose"); 
citiesListModel.addElement("San Francisco"); 
citiesListModel.addElement("Eureka"); 
citiesListModel.addElement("Eugene"); 
citiesListModel.addElement("Portland"); 
citiesListModel.addElement("Spokane"); 
citiesListModel.addElement("Seattle"); 
citiesList.setModel(citiesListModel); 
citiesList.setSelectedIndex(0); 

//驗證碼設置選定列表的位置

SecondLabel.setText("Selected Cities"); 
gridConstraints = new GridBagConstraints(); 
gridConstraints.gridx = 1; 
gridConstraints.gridy = 0; 

gridConstraints.insets = new Insets(10, 0, 0, 0); 
getContentPane().add(SecondLabel, gridConstraints); 
SecondScrollPane.setPreferredSize(new Dimension(150, 100)); 
SecondScrollPane.setViewportView(SecondList); 
gridConstraints = new GridBagConstraints(); 
gridConstraints.gridx = 1; 
gridConstraints.gridy = 1; 
gridConstraints.insets = new Insets(10, 10, 10, 10); 
getContentPane().add(SecondScrollPane, gridConstraints); 

**This is my second list, which is empty, where i want to the moved value..** 

DefaultListModel citiesListModel1 = new DefaultListModel(); 
citiesListModel1.addElement("aa"); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
citiesListModel1.addElement(""); 
SecondList.setModel(citiesListModel1); 
SecondList.setSelectedIndex(0); 


    **This is the button,for help me move selected city, from first list** 
AssignButton.setText("Add Cities"); 
gridConstraints = new GridBagConstraints(); 
gridConstraints.gridx = 0; 
gridConstraints.gridy = 2; 
gridConstraints.insets = new Insets(0, 0, 10, 0); 
getContentPane().add(AssignButton, gridConstraints); 
AssignButton.addActionListener(new ActionListener() 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
    } 
}); 

回答

2

首先,你的第二個模型不需要一堆空元素(除非您打算允許將項目移動到特定位置)。

在您分配動作偵聽器時,您需要檢查選擇了哪些元素,然後將其添加到第二個列表模型中。

使用JList#getSelectedValuesList從第一個列表中獲得所選值的List。簡單地介紹列表並將每個元素添加到第二個列表。

根據您的需要,您可以從第一個列表中刪除選定的項目或提供支票以確定項目是否已存在於第二個列表中

相關問題