我有一个失败的JavaFX Controller类
extractProgress.setProgress(1);
这是堆栈跟踪:
Exception in thread "Thread-4" java.lang.NullPointerException
at com.eventhorizonwebdesign.onezip.ExtractProgressController.run(ExtractProgressController.java:23)
at java.lang.Thread.run(Thread.java:745)
以下是整个Controller的代码:
package com.eventhorizonwebdesign.onezip;
import com.eventhorizonwebdesign.jfail.JFail;
import com.eventhorizonwebdesign.onezip.util.Extractor;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.ProgressBar;
public class ExtractProgressController implements Runnable{
@FXML
private ProgressBar extractProgress;
@FXML
private Button doneButton;
@Override @FXML
public void run() {
if (Extractor.smartExtract(Main.workingArchive, Main.workingDestination)){
extractProgress.setProgress(1);
doneButton.setText("Finished");
} else {
try {
throw new Exception("Extraction Failed");
} catch (Exception e){
e.printStackTrace();
JFail.handleError(e, true);
}
}
}
@FXML
private void initialize(){
doneButton.setOnAction(e -> {
System.exit(0);
});
ExtractProgressController e = new ExtractProgressController();
Thread eThread = new Thread(e);
eThread.start();
}
}
为什么这只是应用于此对象的第二种方法失败,我该怎么做才能解决这个问题?