Eccomi di nuovo.
Sono tornato da poco e mi sono subito messo al lavoro.
Devo dire prima di tutto che avevo pensato anch'hio di fare come mi suggerisci, ma
poi avevo desistito perchè sullo statement che tu hai scritto come segue:
a.elab(args);
veniva segnalato l'errore:
local variable for args is accessed from within inner call; need to be declared final
Dopo il tuo suggerimento ho comunque ripreso quella strada e dopo aver studiato un pò,
ho modificata la riga:
public static void main(String args[]) {
in
public static void main(final String args[]) {
l'errore è subito scomparso e ho quindi proseguito secondo il tuo suggerimento.
Fatto sta che però mi sono accorto che poichè lo statement
a.elab(args);
deve essere NECESSARIAMENTE scritto DOPO lo statement
argframe3 a = new argframe3(args);
il passaggio degli argomenti arriva troppo tardi.
Infatti, come avevo detto prima, io per abitudine ho SEMPRE scritto tutto il codice
dei miei programmi, o meglio ciò che deve essere eseguito all'avvio del programma
prima che venga esaminato qualunque evento, dopo lo statement
initComponents();
Ma poichè, come ho detto, questo codice viene eseguito alla costruzione dell'istanza
argframe2, l'arrivo degli argomenti non è ancora avvenuto quando viene eseguito il
mio codice.
Ripeto ancora una volta che il mio modo di programmare in Java è influenzato dal
fatto che utilizzo una piattaforma di sviluppo che ha le sue regole e che finisce per
costringere il progframmatore ad adeguarvisi.
Dunque tornando a Netbeans (che penso tu conosca, ma non so se usi) devo dire che
normalmente, se non si usa la grafica, esso quando crea il codice iniziale di un
qualunque programma, prepara una classe con un Main dal quale si può creare
la classe che deve fare l'elaborazione e alla quale si possono passare ovviamente
gli argomenti args.
Quando però si aggiunge un Form al programma, mi sembra di capire che Netbeans
si renda conto che il programmatore vuole usare la grafica (infatti certamente
utilizzerà nel form anche tanti conponenti swing) e allora decide di creare un Main
anche dentro la classe della Form (estensione della classe JForm). A questo
punto ci si trova ad avere DUE Main, uno nella classe della Form e un secondo
nella classe iniziale del programma; se gli si chiede di non creare la main class
(come faccio io quando scrivo un programma con la grafica) Netbeans crea solo
la classe della form con all'interno il Main.
Bene in questa ultima situazione, como ti ho detto prima non si riesce in alcun
modo a far avere disponibili (per tempo) gli argomenti passati dal Main al
costruttore della Form (e quindi nel mio caso anche al mio codice che segue
le istruzioni del costruttore).
Detto questo e sperando di non averti troppo annoiato, ho provato con un ultimo
sistema che ha avuto anche successo, ma che mi ha richiesto di modificare un
pò del codice generato (cosa che non faccio mai con piacere).
Ho fatto creare a Netbeans un programma SENZA ABOLIRE IL MAIN e vi ho subito
aggiunto una Form con nome Argframe6. Ho ottenuto una classe iniziale con un
Main così come riporto qui di seguito:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package provaprargs6;
/**
*
* @author ffellico
*/
public class Provaprargs6 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
}
e dopo: // TODO code application logic here, ho aggiunto:
System.out.println("ciao");
new Argframe6(args).setVisible(true);
sono stato costretto però a modificare la riga del costruttore della Form generato
da Netbeans da:
public Argframe6() {
a
public Argframe6(String args[]) {
Ora a te il commento. Ti sembra una soluzione che oltre a funzionare non è una
bruttura? oppure pensi che si potrebbe fare di meglio?
In tutto questo non posso che ringraziarti per la pazienza e per avermi quanto
meno messo sulla strada della soluzione.
Sono tanti anni che programmo e come penso capiti anche a te e a chiunque altro
lo fa con passione, non si finsce mai di apprezzare questa materia.
Tanto piacere di aver fatto la tua conoscenza e se ne hai voglia dai un'occhiata
al mio sito
http://www.ffellico.co dove potrai anche sapere qualche cosa di più
sulla mia età e sul mio passato. Un caro saluto.