Mi è chiara la logica, solo che non riesco venirne a capo lato codice, probabilmente anche per carenze
Vi lascio qualche altre info e un po' di codice, on qualche domanda: se avete tempo e voglia di aiutarmi, grazie mille!
La mia classe Main ha come costruttore tutta la "costruzione" dell'interfaccia
codice:
public Main() {
setTitle("WebCrawler");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblUrl = new JLabel("URL:");
lblUrl.setBounds(12, 14, 70, 15);
contentPane.add(lblUrl);
url = new JTextField();
url.setBounds(78, 12, 150, 19);
contentPane.add(url);
.......................................
}
Vi è poi il main che mi crea appunto questa interfaccia
codice:
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Main frame = new Main();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Tramite la pressione del "bottone incriminato" poi parte tutto il funzionamento che ho descritto (creazione oggetto Crawler, tramite metodo interno a Main, che crea i thread con oggetto PageExplorer).
Come posso e si deve modificare Crawler e/o Main, affinchè io possa tenere traccia dell'oggetto Main esistente e passarlo nuovamente nella classe Main?
EDIT:
Se ho capito bene: devo tener traccia dell'oggetto frame creato nel main. Quindi quando vado a creare l'oggetto Crawler devo passargli come riferimento questo oggetto frame. Una volta riuscito in ciò, nel metodo della classe Crawler (quello dove creavo un nuovo oggetto per intenderci) quando vado a richiamare il metodo del Main che mi modifica l'interfaccia, devo passargli frame?