我的目标是从“文件打开”对话框中选择一个文件,读取它并根据文件的内容绘制对象。我找到了一种打开该对话框的方法(请参见下面的框架代码),但是 PDE 程序在我可以选择文件之前开始绘制。由于绘图取决于所选文件的内容,因此出现空指针错误。
我的问题是如何在 draw 方法开始之前选择文件?
如果我在 setup() 中明确定义我的文件 (Amas.in),一切都很好,程序会根据给定文件显示我的输出。
如果我使用 selectInput(...),我只会在 draw() 启动后出现询问我文件名的对话框,从而导致指针错误。
如果我明确定义我的文件,然后调用 selectInput(...),程序会根据初始文件开始绘制对象,然后询问我想要哪个新文件;但是,在我选择新文件后,程序会忽略该新文件的内容。
默认的 Amas.in 和我的其他文件都在数据文件夹中。
我究竟做错了什么 ?
提前感谢您的任何建议。
String myInputFile ;
void setup() {
selectInput("Select a file : ", "fileSelected");
String[] lines = loadStrings("Amas.in"); // works
//String[] lines = loadStrings(myInputFile); // doesn't work
}
void draw() {
ellipse(mouseX, mouseY, 9, 9);
println("Selected at this point " + myInputFile);
}
void fileSelected(File selection) {
if (selection == null) {
myInputFile = "Amas.in" ;
println("Default file is opened : " + myInputFile);
} else {
myInputFile = selection.getAbsolutePath() ;
println("User selected " + myInputFile);
}
}