如何在Java Swing程序中处理命令行参数?
编辑:我想要做的是让用户给出一个文件路径作为arg。然后我将jTextPane的文本设置为该文件的内容。
答案 0 :(得分:5)
唯一的方法是在运行Java类文件时通过main方法。
编译后,在命令行中执行以下操作; 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]
文件路径的命令行参数:
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 :(得分:1)
如前所述,从命令行参数到Swing没有直接的方法。您的Swing应用程序将在某处从main
方法执行,因此您必须修改该方法以从提供的参数中获取文件,然后以某种方式将其传递到Swing组件中。
另一方面,如果您正在制作Swing应用程序,您可能会忘记命令行,而是提供一种方法来调用JFileChooser
以允许您的用户以图形方式选择其上的文件系统,然后继续将内容加载到您的JTextArea
。
另一种类似于提供命令行参数的方法是提供允许用户键入文件完整路径的JTextField
。
我建议您只在"Load File"
上方添加JTextArea
按钮,以调用JFileChooser
。