我正在尝试学习GUI编程,但我没有找到原因以及如何修复我的代码。 我的问题是我使用JFileChooser打开一个文件,当我想取消该选项或关闭JFileChooser窗口时,它会抛出这个异常:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at myForm.OpenFile(myForm.java:296)
at myForm.openVActionPerformed(myForm.java:230)
at myForm.access$1(myForm.java:222)
at myForm$2.actionPerformed(myForm.java:102)
这是我的代码:
private void OpenFile() {
try {
File thisFile;
JFileChooser of = new JFileChooser();
int option = of.showOpenDialog(of);
while (!of.getSelectedFile().getName().endsWith(".xml")) {
String error = "Error, Please select xml file";
JOptionPane.showMessageDialog(this, error, "Wrong type of file", JOptionPane.INFORMATION_MESSAGE);
of = new JFileChooser();
option = of.showOpenDialog(of);
}
if (option == JFileChooser.APPROVE_OPTION){
thisFileName = of.getSelectedFile().getPath();
thisFile = new File(thisFileName);
pointsList.clear();
}
else {
Iterator<Point> i = pointsList.iterator();
while(i.hasNext()) {
p = i.next();
drewPoints(p.x, p.y);
}
return;
}
//.... the next lines irrelevant for my question...
答案 0 :(得分:0)
你需要在while语句之前加上它。
if (option == JFileChooser.APPROVE_OPTION){
或作为while语句的一部分,因此当有取消操作时它也会停止。