从另一个类(JavaFX的控制器类)获取变量
我正试图在从另一个类(JavaFX的控制器类)获取变量,java,javafx-2,javafx,fxml,Java,Javafx 2,Javafx,Fxml,我正试图在JavaFX上实现一个游戏。此外,我正在处理一个FXML文件,因此我有一个main类和controller类。我的问题是如何从controller类访问main类的对象。更清楚地说,我将分享一个简单的代码 这是主要课程: public class JavaFXApplication1 extends Application { @Override public void start(Stage primaryStage) throws IOException {
JavaFX
上实现一个游戏。此外,我正在处理一个FXML
文件,因此我有一个main
类和controller
类。我的问题是如何从controller
类访问main
类的对象。更清楚地说,我将分享一个简单的代码
这是主要课程:
public class JavaFXApplication1 extends Application {
@Override
public void start(Stage primaryStage) throws IOException {
Parent root = FXMLLoader.load(getClass().getResource("Risk3.fxml"));
// Main Pane
BorderPane borderPane = new BorderPane();
borderPane.setCenter(root);
// Main scene
Scene scene = new Scene(borderPane);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
例如,我想从controller
类访问root
或borderPane
,它是:
public class SampleController implements Initializable {
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
我应该将
root
和borderPane
设置为全局和静态还是有其他方法可以访问它们?可以使用FXML
控制器访问root
面板
@FXML
像任何组件一样标记
<BorderPane xmlns:fx="http://javafx.com/fxml" fx:id="root">
...
</BorderPane>
...
只需使用FXML
控制器即可访问root
面板
@FXML
像任何组件一样标记
<BorderPane xmlns:fx="http://javafx.com/fxml" fx:id="root">
...
</BorderPane>
...
为什么要将从控制器加载的面板包装到BorderPanel中?实际上,我将在地图周围添加文本字段。此外,我将添加一个球员菜单的底部。这就是为什么我选择了border pane并包装了面板。为什么要将从控制器加载的面板包装到BorderPanel中?实际上,我会在地图周围添加文本字段。此外,我将添加一个球员菜单的底部。这就是我选择边框窗格并包装面板的原因。