Ho creato un codice "principale" di oltre 500 righe (per questo non posso postarlo) che però non rispetta il pattern architetturale MCV. In pratica dovrebbe rispondere al seguente requisito:
Occorre cioè evitare di scrivere parti di codice molto estese all'interno dei metodi invocati da eventi grafici (es. metodo onClick() in wx-DevC++ o metodi di classi listener in Java) e all'interno dei file che contengono tali metodi. In altri termini, occorre disaccoppiare il più possibile, su file differenti, la cattura dell'evento grafico dalla conseguente elaborazione. È consentito, tuttavia, violare questa linea guida qualora la gestione dell'evento non richieda complesse elaborazioni (al massimo 8 linee di codice).
Nel programma non sono presenti metodi OnClick ma diversi ActionListener. In diversi casi l'ActionListener appartiene all'azione dell'evento del menu di navigazione (il classico file, ..., exit) e quindi utilizzano invocazioni a parti grafiche già esistenti, mentre altre azioni possono aprire una nuova finestra alla loro invocazione. Non so se queste nozioni sono o meno utili, ma a me hanno creato diversi problemi.
Come si potrebbe fare per "spostare" l'azione di ActionListener in altre classi?
Ecco un esempio di invocazione di ActionListener del mio programma (in questo caso di un elemento (item) del menu):
codice:JMenuItem noteitem = new JMenuItem("About"); about.add(noteitem); noteitem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { final JFrame infof = new JFrame("About"); ...