Pregunta

Estoy intentando añadir una barra de desplazamiento a un JList (que utiliza un modelo de datos personalizados). La adición de un JScrollPane realidad cueros el JList, en lugar de añadir una barra de desplazamiento. Cuando ejecuto el código con la barra de desplazamiento, el JList no es visible, y no puedo ver los datos.

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

Al comentar el listScrollPane = ... hace que la línea de JList visible de nuevo y funciona como se esperaba.

¿Qué me he perdido?

¿Fue útil?

Solución

Es necesario añadir el panel de desplazamiento al contenedor, y no a la lista.

En el ejemplo actual, mediante la adición de la lista en el panel de desplazamiento, se elimina la lista de su envase original, ya que un componente puede tener sólo uno de los padres.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top