2011-01-20 3 views
5

Я пытаюсь захватить аргументы, переданные из командной строки при запуске моего приложения. У меня есть проект, выполненный через netbeans, который использует класс SingleFrameApplication или фреймворк качающихся приложений. Основной метод звонитКак обрабатывать аргументы командной строки в java Swing Application Framework

launch(MyApp.class, args); 

в основном метод. В документации, приведенной в http://java.sun.com/developer/technicalArticles/javase/swingappfr/, указано, что:

Метод запуска вызывает необязательный метод инициализации приложения непосредственно перед вызовом метода запуска. Вы можете использовать метод initialize для выполнения любых начальных шагов настройки или настройки. Например, вы можете обрабатывать аргументы командной строки из метода initialize. Вы также можете проверить подключение к базе данных или установить свойства системы. Короче говоря, структура предоставляет этот метод для любой установки, не связанной с UI, которую может понадобиться вашему приложению перед отображением пользовательского интерфейса. Классы Application и SingleFrameApplication предоставляют пустой метод для метода initialize. По умолчанию метод ничего не делает.

Мы говорим о методе MyApp.initialize здесь? Если это так, похоже, нет ссылки на параметр args.

EDIT: Это не апплет, это настольное приложение. Помните, что это использует Swing Application Framework, что означает, что часть этого состоит в том, чтобы иметь класс «launcher» для вашего основного графического интерфейса Java. Фрагмент кода будет:

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

Есть недостающие детали. Это апплет? Как вы его запускаете сейчас? – jzd

ответ

2

Да, вы должны переопределить метод initialize(...). В приведенной ссылке есть Code Example 6, в которой показано использование метода initialize(...). У него явно есть аргументы командной строки.

public class HelloWorld extends SingleFrameApplication { 
    ... 

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

Извините, тратя время на все ... Я пропустил это как-то .... :( – EDJ

1

Взято из официальных документов Sun. Добавьте это в свой класс приложения.

@Override 
protected void initialize(String[] args) { 
    ... 
} 
Смежные вопросы