如何在Java Swing Application Framework中处理命令行参数

时间:2011-01-20 17:10:29

标签: java swing

我正在尝试在运行应用程序时获取从命令行传递的参数。我有一个通过netbeans制作的项目,它使用SingleFrameApplication类或swing应用程序框架。主要方法是进行调用

launch(MyApp.class, args);   

在它的主要方法中。 http://java.sun.com/developer/technicalArticles/javase/swingappfr/中的文档说:

  

启动方法在调用启动方法之前调用应用程序的可选初始化方法。您可以使用initialize方法执行任何初始配置或设置步骤。例如,您可以在initialize方法中处理命令行参数。您还可以检查数据库连接或设置系统属性。简而言之,框架为显示UI之前应用程序可能需要的任何非UI相关设置提供了此方法。 Application和SingleFrameApplication类为initialize方法提供了一个空方法体。该方法默认不执行任何操作。

我们在这里谈论MyApp.initialize方法吗?如果是这样,似乎没有任何args参数的引用。

编辑:这不是applet,而是桌面应用程序。请记住,它使用的是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);
}

2 个答案:

答案 0 :(得分:2)

是的,您必须覆盖initialize(...)方法。在您提供的链接中,有Code Example 6,显示了initialize(...)方法的使用。它显然有命令行参数。

public class HelloWorld extends SingleFrameApplication {
    ...

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

答案 1 :(得分:1)

取自官方Sun文档。将其添加到您的应用程序类。

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