Oppure

Loading
28/07/11 15:17
crack001
Salve a tutti gente, avrei un piccolo problemino con un pannello di un interfaccia, questo pannello fa parte di un progetto che è uscito abbastanza lungo quindi non sto a postare l'intero sorgente anche perche mi serve per l'universita. Vi spiego il problema, io ho bisogno di un pannello dove inserisco nome e cognome, seleziono l'operazione da compiere da un JComboBox e premo ok, fino a qui tutto bene, il problema arriva quando ad un operazione del ComboBox corrisponde la ricerca e la visualizzazione di alcuni oggetti (sotto forma di String altrimenti non li visualizza la JList) di una determinata classe.

Alla fine della ricerca mi ritrovo un arraylist che contiene tutti questi oggetti, e con l'opportuno metodo toString() ridefinito nella classe degli oggetti che sto usando dovrei riuscire a stamparli nel JList, il problema è che quando creo la lista e vado a settargli dove prendere i dati

[CODE]
listaprenotazioni.setListData(ALPr.toArray());
[/CODE]

mi succede che la lista viene creata ma non visualizza una mazza xDDDD

vi mostro il codice interessato:

Questo è il metodo che crea il pannello che contiene la lista e lo visualizza sul frame
[CODE]
public JPanel cancellaPrenotazione(){
        JPanel cancellaPrenotazione=new JPanel();
        cancellaPrenotazione.setLayout(new BorderLayout());
        ArrayList<Prenotazioni> ALPr=Cliente.searchPren(nome,cognome);
        JList listaprenotazioni=new JList();
        listaprenotazioni.setListData(ALPr.toArray());
        JScrollPane container=new JScrollPane(listaprenotazioni);
        cancellaPrenotazione.add(container,BorderLayout.NORTH);
        return cancellaPrenotazione;
    }
[/CODE]

e questa è la signature del metodo che utilizzo per riempire l'ALPr
[CODE]
public static ArrayList<Prenotazioni> searchPren(String nomeC, String cognC)
[/CODE]

quest'ultimo funziona correttamente, perche se l'arraylist ottenuto in ritorno lo esploro con un foreach e lo stampo su terminale stampa la ricerca che dovevo fare io, quindi presumo che il problema sia solo nella creazione della JList nel metodo cancellaPrenotazione().

Da premettere che è la prima volta che utilizzo swing...Poi volevo fare una domanda un po diretta. La creazione di un interfaccia grafica, risulta più ottimale se fatta in un unica classe, quindi con la creazione di pannelli e vari listener in una sola classe, oppure con la creazione di piu classi, una classe per ogni interazione dell'interfaccia??

Attendo vostre risposte ;D ;D ;D
aaa
29/07/11 8:13
Bonny
Dovresti postare tutto il codice ..
questa istruzione " ArrayList<Prenotazioni> ALPr=Cliente.searchPren(nome,cognome); "
il metodo searchPren() ritorna una lista di oggetti di classe Prenotazioni??
beh credo di si
Comunque secondo me dovresti creare un metodo

public String getPren(){
      return (pren.nome +"  "+ pren.cognome);
}


nella classe Prenotazioni
poi per inserire questi dati nel JList io farei cosi:

intanto elimina queste 2 righe
JList listaprenotazioni=new JList();
listaprenotazioni.setListData(ALPr.toArray());
nel senso che, listaprenotazioni non sa com'è "fatto" l'array che gli passi è pre questo motivo che non te lo fa vedere..
devi facciamo un casting:
Prenotazioni x[] = listaprenotazioni.toArray(new Prenotazioni[listaprenotazioni.size()]);


a questo punto abbiamo un array di prenotazioni e con il metodo getPren() "riempiamo" il JList ovvero:

JList jlist = new JList();
for(int i=0;i<x.lenght;i++){
    jlist.add( x[i].getPren() );
}


Spero di esserti stato utile ciao :)
aaa