views:

1183

answers:

1

I'm trying to add a scrollbar to a JList (which uses a custom data model). Adding a JScrollPane actually hides the JList, instead of adding a scrollbar. When I run the code with the scrollbar, the JList is not visible, and I cannot see the data.

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);

Commenting out the listScrollPane = ... line makes the JList visible again and it works as expected.

What did I miss?

Thank you!

A: 

You need to add the scrollpane to the container, and not the list.

In your current example, by adding the list in the scrollpane, it removes the list from its original container, since a component can have only one parent.

Aakash