Ciao a tutti, mi sono imbattuto in un problemino curioso, all'interno di un JFrame assime ad altri pannelli uso una JList all'interno di un JScrollPane adesso con 2 bottoncini dovrei inserire elementi nella JList, l'inserimento avviene ma lo scroll non si attiva
ho fatto vari esperimenti per vedere dove era l'errore e ho notato che se nella lista metto valori prima lo scroll funziona altrimenti quindi immagino che sia dovuto ai componenti che la ospitano ma no riesco a capire come farla funzionare, qui parte del codice per spiegare meglio:
l'azione che viene eseguita al momento dell'inserimento è questa :codice:items = new Vector<EspreListItem>(); //inserendo gli elementi prima lo scroll si attiva // for(int i=0;i<20;i++){ // items.add(new EspreListItem("ciao"+i, "120+321")); // } listaPassato=new JList<EspreListItem>(items); listaPassato.addListSelectionListener(new AscoltatoreSelezioni(espressione)); arrowIn.addActionListener(new InserisciAction());//qui viene chiamata l'azione scrollJList=new JScrollPane(listaPassato); scrollJList.setPreferredSize(new Dimension(400, 65)); listaPassato.setLayoutOrientation(JList.HORIZONTAL_WRAP); listaPassato.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); panSud.setPreferredSize(new Dimension(500, 100)); panSud.add(scrollJList); pannelloPrincipale.add(panSud,BorderLayout.SOUTH); finestra.add(pannelloPrincipale);
dove sbaglio che dovrei cambiare?codice:private class InserisciAction implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { if(espressione.getText().isEmpty()){ mostraAvvertenza("Non è presente alcuna espressione da salvare!"); }else{ items.add(new EspreListItem(JOptionPane.showInputDialog("Inserisci il nome:"), espressione.getText())); scrollJList.getViewport().validate(); panSud.repaint(); } } }

Rispondi quotando
