Используйте аргументы командной строки в программе Java Swing - PullRequest
1 голос
/ 01 июля 2011

Как вы можете обрабатывать аргументы командной строки в программе Java Swing?

РЕДАКТИРОВАТЬ: я хочу дать пользователю путь к файлу в качестве аргумента. Затем я устанавливаю текст jTextPane для содержимого этого файла.

Ответы [ 2 ]

5 голосов
/ 01 июля 2011

Единственный способ - через метод main при запуске файла класса Java.

Вы делаете следующее в командной строке после компиляции; java NameOfClassFile a b c d

Например, чтобы распечатать их как массив аргументов командной строки:

public static void main(String[] args)
{
    for(String arg : args)
        System.out.println(arg);
}

В любом случае я не знаю, как передать аргументы командной строки в работающую в данный момент программу Java Swing. Не уверен, что сможешь.

Для отображения содержимого файлов на JTextPane вы можете использовать args[0] a аргумент командной строки для пути к файлу, используя:

JTextPane pane = new JTextPane();
JFrame frame = new JFrame("Example");
frame.add(pane);
frame.setVisible(true);
File file = new File(args[0]);
pane.setPage(file.toURL().toString());
frame.pack();

Если вы хотите, чтобы содержимое содержало более одного файла, просто используйте java NameOfClassFile file1 file2 file3 Затем вы можете использовать args[0] args[1] args[2], чтобы получить путь к файлу и изменить приведенный выше код для размещения на JTextPane.

1 голос
/ 01 июля 2011

Как уже упоминалось, нет прямого пути перехода от аргументов командной строки к Swing.Ваше приложение Swing будет выполняться где-то из метода main, поэтому вам придется изменить этот метод, чтобы получить файл из предоставленных аргументов, а затем каким-то образом передать его в компоненты Swing.

С другой стороны, если вы создаете приложение Swing, вы можете также забыть командную строку и вместо этого предоставить способ вызова JFileChooser, чтобы позволить вашему пользователю графически выбрать файл вих системы, а затем приступить к загрузке содержимого в ваш JTextArea.

Другой метод, который будет аналогичен предоставлению аргументов командной строки, заключается в предоставлении JTextField, который позволяет пользователю вводить полный путь к файлу.

Я бы рекомендовал просто добавить кнопку "Load File" над вашей JTextArea, которая вызовет JFileChooser.

Удачи!

...