Avatar billede mieritz Nybegynder
21. januar 2002 - 12:39 Der er 6 kommentarer og
1 løsning

tilføje og fjerne elementer fra JList

Jeg ville høre om der er nogle der kan hjælpe mig med at finde ud af følgende.
Jeg har to JLists (liste og liste1) hvor der ligger nogle elemter i. Det jeg skal have gjort er at når jeg vælger et element fra liste skal det fjernes fra liste og lægges over i liste1 og når man trykker på et element i liste1 skal det fjernes og lægges over i liste.
Avatar billede disky Nybegynder
21. januar 2002 - 12:43 #1
Du bruger

.add()
og
.remove()

Til at gøre det med, begge findes i en udgave der kan bruges til at indsætte og fjerne på en bestemt position.

Kig i : java.awt.Container
Avatar billede mieritz Nybegynder
21. januar 2002 - 12:48 #2
jeg syens ikke at det virker jeg har selv brugt
removeFromList til at fjerne med men kan ikke rigtigt finde noget til at tilføje med
Avatar billede nephilim Nybegynder
21. januar 2002 - 12:50 #3
liste1.add(liste.getSelectedValue());
liste.remove(liste.getSelectedValue());
og omvendt for den anden...
jeg mener at der var en bedre metode, men kan ikke lige huske den
Avatar billede mieritz Nybegynder
21. januar 2002 - 12:52 #4
ok jeg har fået det til at virke tak disky
Avatar billede nephilim Nybegynder
21. januar 2002 - 12:54 #5
æv :-( 7 min for sent
Avatar billede disky Nybegynder
21. januar 2002 - 12:55 #6
jeg takker :-)
Avatar billede logical Nybegynder
21. januar 2002 - 13:05 #7
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;

public class DualList {
    private class ListCopier implements ListSelectionListener {
        private DefaultListModel srcModel, destModel;
        private JList src;

        public ListCopier(JList src, JList dest) {
            this.src = src;
            this.srcModel = (DefaultListModel) src.getModel();
            this.destModel = (DefaultListModel) dest.getModel();

            src.addListSelectionListener(this);
        }

        public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                int index = src.getSelectedIndex();
                if (index > -1) {
                    Object o = srcModel.remove(index);
                    destModel.addElement(o);
                }
            }
        }
    }
    public DualList() {
        JFrame f = new JFrame(\"Dual List\");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        DefaultListModel model1 = new DefaultListModel();
        model1.addElement(\"Hej verden\");
        DefaultListModel model2 = new DefaultListModel();

        JList list1 = new JList(model1);
        JList list2 = new JList(model2);

        new ListCopier(list1, list2);
        new ListCopier(list2, list1);

        JSplitPane jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JScrollPane(list1), new JScrollPane(list2));
        f.getContentPane().add(jsp);
        f.setSize(300,300);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        new DualList();
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester