2011-01-20 9 views
5

Sto provando ad acquisire gli argomenti passati dalla riga di comando quando eseguo la mia applicazione. Ho un progetto realizzato tramite netbeans che utilizza la classe SingleFrameApplication o il framework dell'applicazione swing. Il metodo principale effettua una chiamataCome si elaborano gli argomenti della riga di comando in java Swing Application Framework

launch(MyApp.class, args); 

nel suo metodo principale. La documentazione trovata in http://java.sun.com/developer/technicalArticles/javase/swingappfr/ dice:

Il metodo di avvio chiama il metodo di inizializzazione opzionale dell'applicazione appena prima di chiamare il metodo di avvio. È possibile utilizzare il metodo di inizializzazione per eseguire qualsiasi procedura iniziale di configurazione o configurazione. Ad esempio, è possibile elaborare gli argomenti della riga di comando dal metodo di inizializzazione. È anche possibile controllare una connessione al database o impostare le proprietà del sistema. In breve, il framework fornisce questo metodo per qualsiasi impostazione relativa alla non UI di cui potrebbe essere necessaria l'applicazione prima di visualizzare l'interfaccia utente. Le classi Application e SingleFrameApplication forniscono un corpo del metodo vuoto per il metodo di inizializzazione. Il metodo non esegue nulla per impostazione predefinita.

Stiamo parlando del metodo MyApp.initialize qui? In tal caso, non sembra esserci alcun riferimento al parametro args.

MODIFICA: Questa non è un'applet, è un'applicazione desktop. Ricorda, sta usando lo Swing Application Framework, il che significa che parte di questo è avere una classe "launcher" per la tua GUI principale della java class. Un frammento di codice sarebbe:

public class MyApp extends SingleFrameApplication { 

@Override protected void startup() { 
    MyAppGUI view = new MyAppGUI(this); 

    show(new MyAppGUI(this)); 
} 

public static void main(String[] args) { 
    launch(MyAppGUI.class, args); 
} 
+0

Mancano alcuni dettagli. È un'applet? Come lo stai lanciando adesso? – jzd

risposta

2

Sì, è necessario eseguire l'override del metodo initialize(...). Nel link che hai fornito, c'è Code Example 6, che mostra l'uso del metodo initialize(...). Ha chiaramente gli argomenti della riga di comando lì.

public class HelloWorld extends SingleFrameApplication { 
    ... 

    @Override 
    protected void initialize(String[] args) { 
     ... 
    } 
} 
+0

Scusa sprecare il tempo di tutti .... mi sono perso che in qualche modo .... :( – EDJ

1

Tratto dai documenti Sun ufficiali. Aggiungi questo alla tua classe di applicazione.

@Override 
protected void initialize(String[] args) { 
    ... 
} 
Problemi correlati