2009-06-02 12 views
6

Ich versuche, eine Bildlaufleiste zu einer JList hinzuzufügen (die ein benutzerdefiniertes Datenmodell verwendet). Das Hinzufügen eines JScrollPane tatsächlich versteckt die JList, anstatt eine Bildlaufleiste hinzuzufügen. Wenn ich den Code mit der Bildlaufleiste ausführen, ist die JList nicht sichtbar und ich kann die Daten nicht sehen.Scrollbar zu JList hinzufügen

playlistField = new JList(playlist); // playlist is a data model 
playlistField.setLocation(32, 220-36); 
playlistField.setSize(350,120); 
playlistField.setVisible(true); 
this.add(playlistField); 

listScrollPane = new JScrollPane(playlistField, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 

die listScrollPane kommentiert out = ... Zeile macht den JList wieder sichtbar und es funktioniert wie erwartet.

Was habe ich vermisst?

Antwort

6

Sie müssen dem Container das Rollfeld hinzufügen, nicht die Liste.

In Ihrem aktuellen Beispiel wird durch Hinzufügen der Liste im Bildlauffeld die Liste aus dem ursprünglichen Container entfernt, da eine Komponente nur ein übergeordnetes Element haben kann.