我添加了一个汉堡包,一个抽屉和一个文字。我用例如Text text = new Text()初始化它们时所有的唯一工作;或JFXDrawer抽屉=抽屉。当我只写私有文本文本或porivate JFXdrawer抽屉时,我得到一个nullpoint异常。有人可以告诉我这里我做错了什么......非常感谢你。
主要:
import com.jfoenix.controls.JFXTextField;
import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.*;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.awt.event.ActionEvent;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("StartWindow.fxml"));
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
答案 0 :(得分:0)
问题和解决方案
不要写:
@FXML
JFXDrawer drawer = new JFXDrawer();
而只是写:
@FXML
JFXDrawer drawer;
在你的FXML中有一个相应的fx:id
定义:
<JFXDrawer fx:id="drawer" .../>
注意:您的示例代码已经定义了fx:id,因此您需要删除= new JFXDrawer()
以使代码生效。
测试和解释
就抽屉和汉堡包而言,我加载了你的代码,删除了FXML变量的新引用并运行了代码,它似乎对我很好(没有空指针)。
我真的无法解决项目中的所有问题。
通过删除新引用,我的意思是我删除了= new JFXDrawer()
。这是不必要的和错误的,因为JFXDrawer已经由FXMLLoader创建并注入。如果将其设置为新值,则注入的值将丢失,您将丢失引用与FXML文档之间的连接。
可以在James_D的answer on FXML declarations中找到进一步的解释。
其他潜在问题
这些与您的问题中的问题无关,只是我在审核时注意到的一些事项: