使用简单的get方法获取java.lang.reflect.InvocationTargetException错误

使用简单的get方法获取java.lang.reflect.InvocationTargetException错误,java,javafx,methods,get,Java,Javafx,Methods,Get,我正在用j=JavaFX编写一个电子邮件客户端。现在我试着写下回复按钮,当我试图找到要回复的电子邮件的发件人时,我得到了java.lang.reflect.InvocationTargetException。以下是Replaycontroller代码: package project; import java.io.IOException; import java.net.URL; import java.text.DateFormat; import java.text.SimpleDate

我正在用j=JavaFX编写一个电子邮件客户端。现在我试着写下回复按钮,当我试图找到要回复的电子邮件的发件人时,我得到了
java.lang.reflect.InvocationTargetException
。以下是Replaycontroller代码:

package project;

import java.io.IOException;
import java.net.URL;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import javafx.fxml.FXML;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import static project.FXMLNewMailController.mittenti;

public class FXMLReplayController implements Initializable {
    @FXML
    private Button Btn_send;
    @FXML
    private TextField Txt_object;
    @FXML
    private TextField Txt_receiver;
    @FXML
    private TextArea Area_text;
    @FXML
    private AnchorPane AP_replace;

    private static String author, send;
    private static Mail mail;
    static String mittenti[] = {"marti.anzo@gmail.it", "andrea.pizza@hotmail.com", "mattia.berni@edu.unito.it"};

    public void setAuthor(String author) {
        this.author = author;
    }
    public String getAuthor() {
        return author;
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        //Txt_receiver.setText(getMessaggio().getSender(); //error

    }

    public void setMessaggio(Mail mail){
        this.mail = mail;
    }
    public Mail getMessaggio(){
        return mail;
    }
}
Txt\u receiver.setText(getMessaggio().getSender();
请留下错误,如果我对该部分进行注释,它会起作用,但我需要让发件人成功重播电子邮件。
getMessage()
方法在此类中,
getSender()
一个在Mail类中声明

按钮处理程序代码:

private void handleBtnReplay(ActionEvent event) throws IOException{
    System.out.println("Inoltra");
    try{
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("FXMLReplay.fxml"));
        Parent rootRW = (AnchorPane) fxmlLoader.load();
        Stage stage = new Stage();
        stage.setTitle("Replay");

    FXMLReplayController control = fxmlLoader.<FXMLReplayController>getController();
    control.setMessaggio(getMail());
    System.out.println("rispondo a: " + control.getMessaggio());
    System.out.println("destinatario: " + getMail().getSender());

    stage.setScene(new Scene(rootRW));
    stage.show();
}catch (Exception e) {
    System.out.println("errore inoltra: "+ e);
}
private void HandlebtReplay(ActionEvent事件)引发IOException{
系统输出打印号(“INOTRA”);
试一试{
FXMLLoader FXMLLoader=新的FXMLLoader(getClass().getResource(“FXMLReplay.fxml”);
父rootRW=(AnchorPane)fxmlLoader.load();
阶段=新阶段();
舞台剧名(“重播”);
FXMLReplayController控件=fxmlLoader.getController();
setMessaggio(getMail());
System.out.println(“rispondoa:+control.getMessaggio());
System.out.println(“destinatario:+getMail().getSender());
舞台场景(新场景(rootRW));
stage.show();
}捕获(例外e){
System.out.println(“errore inoltra:+e”);
}
}


我以前从未发现过此错误,在网上搜索时,我无法理解这2个get方法的意义所在。

实际处理按钮单击的代码在哪里?理想情况下,您还应该发布
Mail.getSender()的代码
方法,因为这是异常发生的地方。另外,请发布stacktrace。我怀疑问题的原因是
NullPointerException
。(您应该能够通过查看stacktrace来验证这一点(原因应包含异常,该异常是问题的真正来源;调用事件处理程序产生的每个异常都被包装在
InvokationTargetException
)如果确实如此,请参考此问题。(如果您仍然无法识别问题,请描述您希望设置
邮件
字段的原因以及发生这种情况的位置。)@Sedrick我与处理程序一起编辑了我的帖子