Domanda

Sto cercando di aggiungere una barra di scorrimento per un JList (che utilizza un modello di dati personalizzato). L'aggiunta di un JScrollPane realtà pelli il JList, invece di aggiungere una barra di scorrimento. Quando eseguo il codice con la barra di scorrimento, il JList non è visibile, e non riesco a vedere i dati.

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

Nel commentare la listScrollPane = ... linea rende il JList nuovamente visibile e funziona come previsto.

Cosa mi sono perso?

È stato utile?

Soluzione

È necessario aggiungere lo ScrollPane al contenitore, e non la lista.

Nel tuo esempio corrente, aggiungendo l'elenco nel ScrollPane, rimuove la lista dal suo contenitore originale, dal momento che un componente può avere un solo genitore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top