Note di rilascio della versione 1.3

Premessa

Tutte le modifiche presenti nel file CHANGELOG sono state commentate nei rispettivi file, per facilitare la comprensione del codice.
Tali file sono:

Main.java (aggiunto try/catch per gestire le eccezioni)

emuMic\emuMIC.java (save/load system, supporto utenti daltonici)

Graphics\GUI.java (nuova tecnica di programmazione, nuova classe taskPerformer)

Graphics\OtherFrames\About.java (riscritto)
Graphics\OtherFrames\Changelog.java (nuovo)

Passaggio ad una sintassi migliore

La vecchia versione della classe GUI utilizzava il costruttore new ogni volta che doveva utilizzare le classi Font, Color, ecc. Tale metodo è però sconveniente perchè vengono creati tantissimi oggetti in runtime e le istanze di questi oggetti non sono modificabili. Ho utilizzato questo metodo proprio per evitare tali inconvenienti.

Adesso, ogni oggetto di tipo Font, Color, ecc...verrà inizializzato nella parte relativa alla dichiarazione delle variabili, e nel momento del suo utilizzo, si immetterà nel campo dei parametri il puntatore relativo a quell'oggetto. Ecco un esempio:

PRIMA:

microProgram.setBackground(new java.awt.Color(0, 0, 0));
....
microProgram.setFont(new java.awt.Font("Verdana", 0, 12));
microProgram.setForeground(java.awt.Color.WHITE);
....
microProgram.setCaretColor(new java.awt.Color(0, 153, 0));
microPrgPanel.setViewportView(microProgram);

DOPO:

Color Color_192_192_192 = new Color( 192, 192, 192 );
Font Verdana_8 = new java.awt.Font( "Verdana", 0, 8 );

Notare che i nomi delle variabili seguono uno schema logico (nel caso del colore Color_R_G_B, nel caso del font NomeFont_Grandezza).

Anche per l'utilizzo di tali variabili ho attuato un modo più semplice, evitando del codice ripetuto. Mentre prima bisognava scrivere un codice del genere:

LV.setEditable(false);
LV.setFont(new java.awt.Font("Verdana", 0, 10));
LV.setHorizontalAlignment(javax.swing.JTextField.CENTER);
LV.setText("0");
LV.setOpaque(false);

Adesso è possibile utilizzando:

LV = init( LV, false, false, "0", Verdana_10, TEXTFIELD_CENTER );

Tale codice è ovviamente molto leggibile, inoltre si evita anche un altro problema. Tale metodo crea il nuovo oggetto (nel nostro caso una textArea), richiama i metodi necessari e ritorna l'istanza creata. In pratica si evita anche di utilizzare il costruttore new, basta solo dichiararlo come una qualunque variabile e poi utilizzare il metodo init per assegnare le proprietà.

Grazie all'overloading tale metodo è stato "esteso" anche ad altri oggetti (Jlabel, JTextField, JMenu...), per ulteriori informazioni basta leggere i commenti nel file GUI.java.