2011-01-20 80 views
5

我試圖在運行我的應用程序時獲取通過命令行傳遞的參數。我有一個使用SingleFrameApplication類或swing應用程序框架的NetBeans項目。主要方法是打電話如何在Java Swing應用程序框架中處理命令行參數

launch(MyApp.class, args); 

在它的主要方法。在http://java.sun.com/developer/technicalArticles/javase/swingappfr/中找到的文檔說:

launch方法在調用啓動方法之前調用應用程序的可選initialize方法。您可以使用initialize方法執行任何初始配置或設置步驟。例如,您可以從initialize方法內處理命令行參數。您還可以檢查數據庫連接或設置系統屬性。簡而言之,框架爲您的應用程序在顯示UI之前可能需要的任何非UI相關設置提供了此方法。 Application和SingleFrameApplication類爲initialize方法提供了一個空的方法體。該方法默認不做任何事情。

我們在這裏談論MyApp.initialize方法嗎?如果是這樣,似乎沒有任何參考args參數。

編輯:這不是一個小程序,它是一個桌面應用程序。請記住,它使用Swing應用程序框架,這意味着,其中一部分是爲您的主要java類GUI提供「啓動器」類。代碼片段應爲:

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

有一些細節丟失。這是一個Applet嗎?你現在怎麼啓動它? – jzd 2011-01-20 17:19:07

回答

2

是的,您必須覆蓋initialize(...)方法。在您提供的鏈接中,有Code Example 6,顯示使用initialize(...)方法。它顯然在那裏有命令行參數。

public class HelloWorld extends SingleFrameApplication { 
    ... 

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

對不起浪費大家的時間....我錯過了某種...... :( – EDJ 2011-01-20 17:25:52

1

取自官方Sun文檔。將此添加到您的應用程序類。

@Override 
protected void initialize(String[] args) { 
    ... 
} 
相關問題