JavaFX:java.lang.NullPointerException,同时尝试调整边框窗格的大小

JavaFX:java.lang.NullPointerException,同时尝试调整边框窗格的大小,javafx,resize,borderpane,Javafx,Resize,Borderpane,各位晚上好 我还处在Java编程的最开始阶段。我当前的目标是在初始化启动期间调整边框窗格顶部的大小。当然,拥有一个包含静态常量(如大小值)的单独类是非常有益的 不幸的是,我总是得到一个NullPointerException。我觉得这很简单,我看不出来。我希望你能帮助我 提前多谢 package main; import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; i

各位晚上好

我还处在Java编程的最开始阶段。我当前的目标是在初始化启动期间调整边框窗格顶部的大小。当然,拥有一个包含静态常量(如大小值)的单独类是非常有益的

不幸的是,我总是得到一个NullPointerException。我觉得这很简单,我看不出来。我希望你能帮助我

提前多谢

package main;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.Region;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;


public class Main extends Application {

@FXML
Pane main_top;

@Override
public void start(Stage primaryStage) {
    try {
        BorderPane root = (BorderPane)FXMLLoader.load(getClass().getResource("MainGui.fxml"));
        Scene scene = new Scene(root,400,400);
        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
        primaryStage.setScene(scene);
        primaryStage.show();
        primaryStage.setMaximized(true);
        BorderPane.layoutInArea(main_top, 0, 0, 200, GlobalProperties.MainGuiTopPaneHeight, 0, null, false, false, null, null, false);
    } catch(Exception e) {
        e.printStackTrace();
    }

}
编辑:

EDIT2(MainGui.fxml):


经过几天的反复试验,我终于找到了解决办法。现在,问题解决后看起来很简单;-)

我所要做的就是在控制器中添加控制器初始化接口

package main;

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

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;


public class MainGuiController implements Initializable{

//***** @author n3wton

//**** FXML declarations for MainGui.fxml
@FXML
private Pane main_top;
@FXML
private Button button1;

//***** Beginning of auto-initialized method 
@Override
public void initialize(URL arg0, ResourceBundle arg1) {

    button1.setPrefSize(1, 1);
    main_top.setPrefSize(50, 10);

    }
}

请发布您的异常的完整Stacktrace或MCVE()。谢谢eckig,我忘了插入它;-)那不是MCVE。你从这个例子中得到的只是main_top从未初始化,因此你得到了一个Nullpointer异常。嗨,罗兰。我甚至在谷歌上搜索了MCVE这个词,不幸的是没有任何结果。你能给我一个简短的提示“MCVE”代表什么吗?我会马上把它寄出去。感谢您的支持@n3wton:eckig把它的意思联系起来。您的代码使用
MainGui.fxml
创建GUI,但您没有显示它。
package main;

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

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;


public class MainGuiController implements Initializable{

//***** @author n3wton

//**** FXML declarations for MainGui.fxml
@FXML
private Pane main_top;
@FXML
private Button button1;

//***** Beginning of auto-initialized method 
@Override
public void initialize(URL arg0, ResourceBundle arg1) {

    button1.setPrefSize(1, 1);
    main_top.setPrefSize(50, 10);

    }
}