2011-01-20 32 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) { 
    ... 
} 
相关问题