更改javaFX场景时出现NullPointerException

时间:2014-09-30 03:21:21

标签: javafx fxml scene scenebuilder

我的javaFx项目中有两个场景..第一个场景Language.fxml有一个按钮,点击后会将场景更改为allDevices.fxml ..但它会抛出NullPointerException说&#34 ;位置是必需的"虽然两个fxml文件都在同一个路径!!

我的LanguageController.java

package astrolabe;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;

/**
 *
 * @author Ahmed Fawzy
 */
public class LanguageController implements Initializable {

    @FXML
    private Button arabic ;


    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
        arabic.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                // TODO Auto-generated method stub

                try{
                    Node node=(Node) event.getSource();
                    Stage stage=(Stage) node.getScene().getWindow();
                    Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("allDevices.fxml"));/* Exception */
                    Scene scene = new Scene(root);
                    stage.setScene(scene);
                    stage.show();
                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }

            }
        });


    }

1 个答案:

答案 0 :(得分:1)

通过在f​​xml文件名之前添加包名来解决问题!