我有一個類FontInfo,我嘗試將其對象myFont發送到舞臺的新控制器,當我點擊按鈕時出現。這是我的主控制器類:發送類對象到舞臺控制器 - javafx
public class MainController {
//create instance of font
private FontInfo myFont;
@FXML
private Button btnChooseFont;
public void initialize()
{
//create new myFont
myFont = new FontInfo();
}
@FXML
void actionBtnChooseFont(ActionEvent event) {
try
{
//resource to new parent root
Parent root = FXMLLoader.load(getClass().getResource("../fxml/ChooseFont.fxml"));
Stage stage = new Stage();
stage.setTitle("Choose font");
stage.setScene(new Scene(root, 300, 290));
stage.show();
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("../fxml/ChooseFont.fxml"));
ChooseFontController chooseFontController = loader.getController();
chooseFontController.setMyFont(myFont);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
我需要用我在MainConroller在ChooseFontController類創建myFont對象:
public class ChooseFontController {
//myFont object
private FontInfo myFont;
//setter myFont
public void setMyFont(FontInfo myFont) {
this.myFont = myFont;
}
,但我得到空指針異常錯誤:
Caused by: java.lang.NullPointerException
at controllers.MainController.actionBtnChooseFont(MainController.java:48)
在:chooseFontController.setMyFont(myFont);
任何人都可以幫助我解決這個問題嗎?
這似乎是FXMLLoader找不到一個控制器,因此返回從'loader.getController空() '。也許調用'loader.load()'有助於找到它;)。 (在這些情況下,調試有助於找到確切的問題) – n247s