Ok il progetto va bene, io in generale andrei meglio con un file singolo anche perché così non serve fare il download e si ha tutto sotto mano.
Al massimo se non riesci a caricare un .java cambia l'estensione in .txt ma mantieni la stessa struttura che dicevo.
A me comunque il problema "si risolve" se inserisco l'istruzione che ti dicevo dentro all' invokeLater () di SwingUtilities.
In pratica nella classe Disciplina1, alla fine del costruttore, modifichi le due righe seguenti :
codice:scrollesterno.getVerticalScrollBar().setUnitIncrement(7); c.add(scrollesterno);
In queste :
codice:scrollesterno.getVerticalScrollBar().setUnitIncrement(7); SwingUtilities.invokeLater (new Runnable () { public void run () { scrollesterno.getViewport().setViewPosition(new Point(0, 0)); } }); c.add(scrollesterno);
In Swing tutte le azioni che coinvolgono o modificano l'interfaccia dovrebbero avvenire all'interno di un unico thread a questo deputato, detto Event Dispatch Thread (EDT).
In teoria il problema è più a monte, nel senso che è proprio tutta l'inizializzazione dell'applicazione che dovrebbe essere fatta in questo modo, questa è solo una toppa temporanea.
Se ti interessa approfondire potresti iniziare con il tutorial ufficiale, qui trovi il link alla seconda pagina che mostra già un esempio di uso dell' invokeLater(), ma io mi darei anche una letta all'introduzione. Poi c'è ancora tanto da migliorare qua e là![]()

Rispondi quotando