Ok, non avevo visto bene quel che fai nel metodo crea().
Non è sufficiente quella modifica perchè c'è dell'input utente che serve alla creazione dell'array... e l'array deve essere considerato creato solo DOPO che tutto l'input utente è terminato.
Serve una variabile booleana che controlli questa cosa.
codice:public class creaOggetti ... { ... boolean creato = false; ... public void crea() { ... for(int i=0; i<MAX_OGGETTI; i++) { ... } // Nota bene: va fatto DOPO il ciclo for creato = true; } ... public void paintComponent(Graphics g) { super.paintComponent( g ); if ( creato ) { ... // posso usare l'array } } }
Come ho detto anche nell'altro forum, il design non va affatto bene: bisognerebbe separare la gestione dell'input utente (che non andrebbe mai fatta in quel modo dentro ad un componente Swing) e far partire il tutto DOPO che i dati sono stati acquisiti... ma diciamo che per funzionare, così, funziona...
Ciao.![]()




Rispondi quotando