J'ai installé Scene Builder et ouvert un nouveau projet FXML juste pour le tester. J'ai vu sur d'autres ordinateurs que lorsqu'un nouveau projet FMXL est ouvert, le code par défaut génère un bouton qui affiche du texte lorsqu'on clique dessus. Cependant, lorsque j'essaie d'exécuter la méthode principale du projet FXML par défaut, j'obtiens une erreur de pile avec une exception NullPointerException. J'ai cherché beaucoup de questions sur la façon de résoudre le problème, mais aucun d'entre eux ne m'a vraiment donné une réponse concrète. Toute aide serait appréciée.Exception Scene Builder dans l'application (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>