JavaFX NullPointer在Runnable中第二次使用对象

时间:2016-08-25 03:17:33

标签: java multithreading javafx

我有一个失败的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();
}


}

为什么这只是应用于此对象的第二种方法失败,我该怎么做才能解决这个问题?

0 个答案:

没有答案