我一直在尝试在运行时动态加载图像的时间最长,并且已经查看了该网站上的其他帖子,并且尚未找到可行的内容。我正在尝试在GUI运行时加载图像(在运行时制作)并尝试了各种各样的东西。现在,我发现创建图像的最简单方法是使用JLabel并向其添加ImageIcon。这已经奏效,但是当我在GUI运行后加载它时,它无法说出存在“NullPointerException”。这是我到目前为止的代码:
p = Runtime.getRuntime().exec("python C:\\FaceVACS\\roc.py " + "C:/FaceVACS/OutputCMC_" + target + ".txt " + "C:/FaceVACS/ROC_" + target + ".png");
Icon graph = new ImageIcon("C:\\FaceVACS\\OutputCMC_" + target + ".png");
roc_image.setIcon(graph);
panel.add(roc_image);
panel.revalidate();
gui.frame.pack();
我尝试了panel.validate(),panel.revalidate(),我也尝试过gui.getRootPane(),但我似乎找不到任何可行的方法。
任何想法都会有所帮助!感谢
答案 0 :(得分:2)
getRuntime().exec
用于启动外部程序。要简单地加载要在Java应用程序中使用的文件,您可以像处理任何其他文件一样对待它。实际上,如果您使用的是Swing,ImageIcon构造函数将使用包含文件路径的String作为参数。
How to add an image to a JPanel?
上述问题解释了如何将图像添加到JPanel,这可以在运行时由事件处理程序完成。
答案 1 :(得分:2)
只是运行一个python脚本,保存我想发布的图像
听起来问题是代码在python脚本完成创建映像之前尝试加载映像。尝试:
Process p = Runtime.getRuntime().exec("...");
p.waitFor();
Icon icon = new ImageIcon(...);
答案 2 :(得分:0)
您还可以使用标签显示图像。这个tutorial向您展示了如何。