Your solution should be very straight forward like:
- Get all selected items from Left List
- Add selected items from Left List to Right List
And for doing Add All and Remove All those should be without question very simple. JList class gives you methods to perform all of the above.
JList.getSelectedIndices() will return an array of int (int[]) of all indexes that have been selected. So you would go through the list and take the items at those indexes and add them to your Right List.
List<Object> myItemsForRightList = new ArrayList<Object>();
int[] selectedIndexes = jListLeft.getSelectedIndicies();
for(int i=0; i < selectedIndexes.length; i++) {
Object whatever = jListLeft.getElementAt(selectedIndexes[i]);
((DefaultListModel)jListRight.getModel()).addElement(whatever);
}
I suggest you also look at what the API has to offer @ http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html
--- EDIT ---
Just because no complete source code was provided, I am re-posting the code above with JDK 7 in mind
public static void main(String ... args) {
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DefaultListModel<String> defaultListModel = new DefaultListModel<String>();
defaultListModel.addElement("Bla bla bla");
defaultListModel.addElement("Ble ble ble");
defaultListModel.addElement("Blo blo blo");
final JList<String> list = new JList<String>();
list.setPreferredSize(new Dimension(400, 200));
list.setModel(defaultListModel);
JButton button = new JButton("Add");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
((DefaultListModel<String>)list.getModel()).addElement("New one added");
}
});
frame.setLayout(new BorderLayout(5, 5));
frame.add(new JScrollPane(list), BorderLayout.NORTH);
frame.add(button, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}