Salve a tutti. Ho un problema con la creazione di una JList dove se il numero di elementi supera la capacit' della schermata, non si ha la possibilità dello scroll. Gli elementi della JList sono allocati dinamicamente quindi non so a priori il numero effettivo degli elementi (che sono dei CheckBox)
Ecco la parte di codice interessata (posto solo quella interessata, è ovvio che mancano molte parti ma quelle inerenti alla JList e il JScrollPane ci sono
codice:
public class Frame extends javax.swing.JFrame {
public Frame() {
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jList1 = new javax.swing.JList();
jScrollPane1.setViewportView(jList1);
}
/*Adesso la parte di codice che aggiunge elementi alla lista*/
private void RilevaTracce () {
for (int k=0; k<s;k++) { //questo ciclo aggiunge s volte la stessa traccia
TracceDaScrobblare.add(new Track());
TracceDaScrobblare.get(TracceDaScrobblare.size()-1).setNome(LocalTrackList.getTrackList().get(i).getNome());
TracceDaScrobblare.get(TracceDaScrobblare.size()-1).setArtista(LocalTrackList.getTrackList().get(i).getArtista());
TracceDaScrobblare.get(TracceDaScrobblare.size()-1).setContatore(Integer.toString(s));
TracceDaScrobblare.get(TracceDaScrobblare.size()-1).setDataUltimoAscolto(iTunesTrackList.getTrackList().get(i).getDataUltimoAscolto());
JCheckBox cb = new JCheckBox(LocalTrackList.getTrackList().get(i).getArtista()+" - "+LocalTrackList.getTrackList().get(i).getNome());
cb.setBounds(10, 10 + (20 * yPos++), 400, 20); //Questo codice è verificato...aggiunge checkboxes uno sotto l'altro
cb.setSelected(true);
cb.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ControllaCheckBoxes();
}
});
jList1.add(cb); //aggiunge il CheckBox alla lista
}
}
Fin quando il numero di Checkbox è modesto tale da entrare in una schermata, va bene, ma se supera la capacità della schermata dovrei aver bisogno di uno ScrollPane (che qui non funziona!)