JavaFX:java.lang.NullPointerException,同时尝试调整边框窗格的大小
各位晚上好 我还处在Java编程的最开始阶段。我当前的目标是在初始化启动期间调整边框窗格顶部的大小。当然,拥有一个包含静态常量(如大小值)的单独类是非常有益的 不幸的是,我总是得到一个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
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);
}
}