为什么孩子是空的?JavaFX
我有一个javaFX的小代码。 我想在画布上画画,但我有一些初学者的问题,我真的不太理解javaFX 这是我的为什么孩子是空的?JavaFX,java,javafx,javafx-2,javafx-8,Java,Javafx,Javafx 2,Javafx 8,我有一个javaFX的小代码。 我想在画布上画画,但我有一些初学者的问题,我真的不太理解javaFX 这是我的Main.java package sample; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { Con
Main.java
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
Controller controller;
@Override
public void start(Stage primaryStage) throws Exception{
controller= new Controller();
controller.Pane = FXMLLoader.load(getClass().getResource("sample.fxml"));
System.out.printf("kk"+controller.canvas.isResizable());
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(controller.Pane, controller.Pane.getPrefWidth(), controller.Pane.getPrefHeight()));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
这是sample.FXML
对于controller.java,只有画布和窗格声明
我的问题:
canvas
扩展到@Override
methodisresizeable
使其成为true
。但是Canvas
如果我这样做,我会从FXML获得它
Canvas MyCanvas=new canvasResizeable()代码>
这不管用,我不知道为什么。
是否有一种类似android的方法来制作例如canvas=(canvas)findbyid(FXML.id.canvas)代码>(类似的东西)
我很抱歉,如果我的问题已经被不同的人问到了为什么,我在谷歌搜索了这么多关于javaFX的文档。不应该直接创建FXML控制器。它将由
fxmloader
为您初始化:
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
FXMLLoader loader = new FXMLLoader(getClass().getResource("sample.fxml"));
Pane root = loader.load(); // controller was initialized
controller = loader.getController();
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, root.getPrefWidth(), root.getPrefHeight()));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
您可以在Oracle教程中找到更多详细信息:非常感谢您的回答:D