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
Vi è poi il main che mi crea appunto questa interfacciacodice: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); ....................................... }
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).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(); } } }); }
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?

Rispondi quotando