从程序参数加载图像

Loading image from program arguments

您好,出于某种原因,这无法加载我的图片。如果有人有任何帮助,将不胜感激。它与 stirng fn = args[0]; 有关。但我无法弄清楚。谢谢!

  import javax.swing.JFrame;
  public class ImageProc
  {
    public static void main (String[] args)
  {
    String fn = args[0];
    JFrame frame = new JFrame ("Image Processing");
    frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

    MainPanel panel = new MainPanel("flower.jpg"); 

    frame.getContentPane().add(panel);
    frame.pack();
   frame.setVisible(true);
  }
 }

您已对文件名进行硬编码 (fn),并且您没有使用任何命令行参数调用该程序。我建议你使用

String fn = (args.length > 0) ? args[0] : "flower.jpg";
JFrame frame = new JFrame ("Image Processing");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
// MainPanel panel = new MainPanel("flower.jpg");
MainPanel panel = new MainPanel(fn);

这样您可以稍后提供命令行参数(如果需要),程序会先检查它们是否存在。

或者,您可以注释掉

// String fn = args[0];

args[0] 失败的原因是因为您没有 运行 使用命令行参数设置您的程序。

最后,如果您提供命令行参数,您可以 运行 您现有的代码。