【问题标题】:How do you process command line arguments in java Swing Application Framework你如何在 java Swing 应用程序框架中处理命令行参数
【发布时间】:2011-01-20 17:10:28
【问题描述】:

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

launch(MyApp.class, args);   

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

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

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

编辑:这不是一个小程序,它是一个桌面应用程序。请记住,它使用的是 Swing 应用程序框架,这意味着其中一部分是为您的主 java 类 GUI 提供一个“启动器”类。代码 sn-p 将是:

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);
}

【问题讨论】:

  • 缺少一些细节。这是一个小程序吗?您现在如何启动它?

标签: java swing


【解决方案1】:

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

public class HelloWorld extends SingleFrameApplication {
    ...

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      相关资源
      最近更新 更多