# jList mit ArrayList füllen



## Guest (5. Okt 2007)

Hi,

ich habe eine jList, eine ArrayList und keine Ahnung wie ich das machen soll. Momentan bekomme ich den Fehler:


```
Exception in thread "main" java.lang.ClassCastException: test01.MainFrame$5 cannot be cast to javax.swing.DefaultListModel
        at test01.FunctionReader.getFunctions(FunctionReader.java:50)
        at test01.MainFrame.<init>(MainFrame.java:18)
        at test01.Main.main(Main.java:71)
```

Das leeren und anschliesende füllen der jList sieht bei mir so aus:


```
Collections.sort(name);
            MainFrame.functionsList.removeAll();
            DefaultListModel listModel = (DefaultListModel)MainFrame.functionsList.getModel();
            for ( int i = 0; i < name.size(); i++ ){
                listModel.addElement(name.get(i));
            }
```

Bei der Arraylist handelt es sich um eine ArrayList<String>. Das Befüllen einer ComboBox hat mit der selben Arraylist funktioniert.


----------



## SlaterB (5. Okt 2007)

was ist functionsList.getModel(); für ein Objekt welcher Klasse
und wieso castest du das auf DefaultListModel (wieso ist der Rückgabetyp nciht bereits DefaultListModel)?

was hat diese ClassCastException mit einer ArrayList zu tun?


----------



## Guest (5. Okt 2007)

MainFrame-Standartkonstruktor:


```
functionScrollPane = new javax.swing.JScrollPane();
        functionsList = new javax.swing.JList();
       functionScrollPane.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                changeHeaderOne(evt);
            }
        });

        functionsList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
```

Der Code wurde von Netbeans automatisch erstellt und ich weis nicht wo ich das umstellen kan das Modell.

Also habe ich es hier versuch (Methode getFunctions):


```
Collections.sort(name);
            MainFrame.functionsList.removeAll();
            DefaultListModel listModel = (DefaultListModel)MainFrame.functionsList.getModel();
            for ( int i = 0; i < name.size(); i++ ){
                listModel.addElement(name.get(i));
            }
```

Ich verstehe um ehrlich zu sein gerade mal nichts ^^ Wäre es vlt geschickter ein String-Array aus der Arraylist zu bilden, um den dann hinzuzufügen?


----------



## SlaterB (5. Okt 2007)

was um aller Welt lässt dich denken, dass das Problem etwas mit der ArrayList oder nun einem String-Array zu tun hat?
es geht (zunächst einmal) allein um das Model

schreibe
functionsList = new JList(new DefaultListModel());

oder irgendwann später
functionsList.setMode(new DefaultListModel());

erst dann hast du ein DefaultListModel, vorher nicht und dein Code scheitert


----------

