Ho preso come esempio questo codice da un sito, dove data una JList posso cancellare o aggiungere parole tramite una JTexField..

Ho già aggiunto una JList, che però ha preso tutti i valori e funziona proprio come la prima, anche se io non gli ho assegnato niente..

Ora vorrei far si che quando cancello una parola dalla prima JList, questa vada nella seconda JList..

Qualcuno riesce ad aiutarmi?

Grazie mille..

codice:
package components;

/**
 * Author:  xxx
 * Date:    4 Febbraio 2012
 * Subject: Informatica
 * 
 * Inserire in una list box nomi di fiori o altro,
 * selezionando un item il nome deve apparire in una casella di testo
 * e contemporaneamente deve sparire dalla list box;
 * Inserire un nuovo nome nella casella di testo e aggiungerlo alla list box.
 */
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class ListDemo extends JPanel implements ListSelectionListener {
    private JList list,listAdd;
    private DefaultListModel listModel;
 
    private static final String hireString = "Aggiungi";
    private static final String fireString = "Trasferisci";
    private JButton fireButton;
    private JTextField employeeName;
 
    public ListDemo() {
        super(new BorderLayout());
 
        listModel = new DefaultListModel();
        listModel.addElement("Pane");
        listModel.addElement("Acqua");
        listModel.addElement("Pasta");
        listModel.addElement("Limoni");
 
        // Creo l'elenco, e lo metto nella JList
        list = new JList(listModel);
        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        list.setSelectedIndex(0); // Indice selezione iniziale
        list.addListSelectionListener(this);
        list.setVisibleRowCount(10); // Righe visualizzate in lista (dimensione)
        JScrollPane listScrollPane = new JScrollPane(list);
        
        listAdd = new JList(listModel);
        listAdd.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        listAdd.setSelectedIndex(0); // Indice selezione iniziale
        listAdd.addListSelectionListener(this);
        listAdd.setVisibleRowCount(10); // Righe visualizzate in lista (dimensione)
        JScrollPane listScrollPaneAdd = new JScrollPane(listAdd);
 
        JButton hireButton = new JButton(hireString);
        HireListener hireListener = new HireListener(hireButton);
        hireButton.setActionCommand(hireString);
        hireButton.addActionListener(hireListener);
        hireButton.setEnabled(false);
 
        fireButton = new JButton(fireString);
        fireButton.setActionCommand(fireString);
        fireButton.addActionListener(new FireListener());
 
        employeeName = new JTextField(15);
        employeeName.addActionListener(hireListener);
        employeeName.getDocument().addDocumentListener(hireListener);
        String name = listModel.getElementAt(list.getSelectedIndex()).toString();
 
        // Creo un pannello che utilizza BoxLayout
        JPanel buttonPane = new JPanel();
        buttonPane.setLayout(new BoxLayout(buttonPane,
                                           BoxLayout.LINE_AXIS));
        buttonPane.add(fireButton);
        buttonPane.add(Box.createHorizontalStrut(5)); // Distanza fireButton-separator
        buttonPane.add(new JSeparator(SwingConstants.VERTICAL));
        buttonPane.add(Box.createHorizontalStrut(5)); // Distanza separator-employeeName
        buttonPane.add(employeeName);
        buttonPane.add(hireButton);
        buttonPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
 
        add(listScrollPane, BorderLayout.WEST);
        add(listScrollPaneAdd, BorderLayout.EAST);
        add(buttonPane, BorderLayout.PAGE_END);
    }
 
    class FireListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            // Il metodo va avanti soltanto se c'è una
            // selezione valida in modo da poter andare
            // avanti e rimuovere ciò che è selezionato.
            int index = list.getSelectedIndex();
            listModel.remove(index);
 
            int size = listModel.getSize();
 
            if (size == 0) { // Lista vuota
                fireButton.setEnabled(false);
 
            } else { // Seleziono un indice
                if (index == listModel.getSize()) {
                    // Rimuovo l'indice in ultima posizione
                    index--;
                }
 
                list.setSelectedIndex(index);
                list.ensureIndexIsVisible(index);
            }
        }
    }
 
    // Listener condiviso dal campo di testo e dal "pulsante di noleggio"
    class HireListener implements ActionListener, DocumentListener {
        private boolean alreadyEnabled = false;
        private JButton button;
 
        public HireListener(JButton button) {
            this.button = button;
        }
 
        // Richiesto dall'ActionListener
        public void actionPerformed(ActionEvent e) {
            String name = employeeName.getText();
 
            // L'utente non può digitare un nome univoco
            if (name.equals("") || alreadyInList(name)) {
                Toolkit.getDefaultToolkit().beep();
                employeeName.requestFocusInWindow();
                employeeName.selectAll();
                return;
            }
 
            int index = list.getSelectedIndex(); // Ottenere l'indice selezionato
            if (index == -1) { // Nessuna selezione in modo da inserire dall'inizio
                index = 0;
            } else { // Aggiungi dopo l'elemento selezionato
                index++;
            }
 
            listModel.insertElementAt(employeeName.getText(), index);
            // Se abbiamo solo voluto aggiungere alla fine, ci piacerebbe fare questo:
            // listModel.addElement (employeeName.getText ());
 
            //Reset the text field.
            employeeName.requestFocusInWindow();
            employeeName.setText("");
 
            // Seleziona la nuova voce e rendila visibile
            list.setSelectedIndex(index);
            list.ensureIndexIsVisible(index);
        }
 
        // Metodo di test per l'ugualianza di stringhe, si potrebbe ottenere
        // più soddisfazione tramite l'algoritmo. Si potrebbe desiderare di
        // ignorare gli spazi bianchi e di capitalizzazione
        protected boolean alreadyInList(String name) {
            return listModel.contains(name);
        }
 
        // Richiesto dal DocumentListener.
        public void insertUpdate(DocumentEvent e) {
            enableButton();
        }
 
        // Richiesto dal DocumentListener.
        public void removeUpdate(DocumentEvent e) {
            handleEmptyTextField(e);
        }
 
        // Richiesto dalistener.
        public void changedUpdate(DocumentEvent e) {
            if (!handleEmptyTextField(e)) {
                enableButton();
            }
        }
 
        private void enableButton() {
            if (!alreadyEnabled) {
                button.setEnabled(true);
            }
        }
 
        private boolean handleEmptyTextField(DocumentEvent e) {
            if (e.getDocument().getLength() <= 0) {
                button.setEnabled(false);
                alreadyEnabled = false;
                return true;
            }
            return false;
        }
    }
 
    // Questo metodo è richiesto dal ListSelectionListener.
    public void valueChanged(ListSelectionEvent e) {
        if (e.getValueIsAdjusting() == false) {
 
            if (list.getSelectedIndex() == -1) {
            // Nessuna selezione, disabilita il pulsante di cancellazione
                fireButton.setEnabled(false);
 
            } else {
            // Seleziona, abilita il pulsante di cancellazione
                fireButton.setEnabled(true);
            }
        }
    }
 
    /**
     * Creare l'interfaccia grafica; per motivi di sicurezza, questo metodo
     * deve essere invocato dal: event-dispatching thread.
     */
    
    private static void createAndShowGUI() {
        // Crea e imposta la finestra
        JFrame frame = new JFrame("ListBox");
        frame.setSize(200,700);
        frame.setLocation(100,100);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        // Crea e imposta il pannello
        JComponent newContentPane = new ListDemo();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);
 
        //Visualizza la finestra
        frame.pack();
        frame.setVisible(true);
    }
 
    public static void main(String[] args) {
        // Crea e visualizza la grafica di questa applicazione
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}