Java 应用程序中的场景生成器异常(NullPointerException)

Java 应用程序中的场景生成器异常(NullPointerException),java,nullpointerexception,fxml,scenebuilder,Java,Nullpointerexception,Fxml,Scenebuilder,我已经安装了Scene Builder并打开了一个新的FXML项目来测试它。我在其他计算机上看到,当打开一个新的FMXL项目时,默认代码会生成一个按钮,单击该按钮时会显示文本。但是,当我尝试运行默认FXML项目的main方法时,我得到一个带有NullPointerException的堆栈错误。我已经搜索了很多关于如何修复它的问题线索,但没有一个真正给我一个具体的答案。任何帮助都将不胜感激 ## JavaFXApplication2.java ## package javafxapplicati

我已经安装了Scene Builder并打开了一个新的FXML项目来测试它。我在其他计算机上看到,当打开一个新的FMXL项目时,默认代码会生成一个按钮,单击该按钮时会显示文本。但是,当我尝试运行默认FXML项目的main方法时,我得到一个带有NullPointerException的堆栈错误。我已经搜索了很多关于如何修复它的问题线索,但没有一个真正给我一个具体的答案。任何帮助都将不胜感激

## JavaFXApplication2.java ##

package javafxapplication2;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

/**
 *
 * @author Hafiz
 */
public class JavaFXApplication2 extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }

## FXMLDocumentController.java ##

}
package javafxapplication2;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

/**
 *
 * @author Hafiz
 */
public class FXMLDocumentController implements Initializable {

    @FXML
    private Label label;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        System.out.println("You clicked me!");
        label.setText("Hello World!");
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    

}

## FXMLDocument.fxml ##

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javafxapplication2.FXMLDocumentController">
    <children>
    <Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
    <Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
</children>
##JavaFXApplication2.java##
包javafxapplication2;
导入javafx.application.application;
导入javafx.fxml.fxmloader;
导入javafx.scene.Parent;
导入javafx.scene.scene;
导入javafx.stage.stage;
/**
*
*@作者哈菲兹
*/
公共类JavaFXApplication2扩展了应用程序{
@凌驾
public void start(Stage)引发异常{
父根=fxmloader.load(getClass().getResource(“FXMLDocument.fxml”);
场景=新场景(根);
舞台场景;
stage.show();
}
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
发射(args);
}
##FXMLDocumentController.java##
}
包javafxapplication2;
导入java.net.URL;
导入java.util.ResourceBundle;
导入javafx.event.ActionEvent;
导入javafx.fxml.fxml;
导入javafx.fxml.Initializable;
导入javafx.scene.control.Label;
/**
*
*@作者哈菲兹
*/
公共类FXMLDocumentController实现可初始化{
@FXML
自有品牌;
@FXML
私有无效把手按钮操作(ActionEvent事件){
System.out.println(“你点击了我!”);
label.setText(“你好,世界!”);
}
@凌驾
公共void初始化(URL、ResourceBundle rb){
//待办事项
}    
}
##FXMLDocument.fxml##

我认为您的问题是由私有方法“HandleButtoAction”引起的。把它公开,然后再试试。问候