【问题标题】:Reach a variable from another class (which is controller class of JavaFX)从另一个类(JavaFX 的控制器类)中获取变量
【发布时间】:2013-04-27 23:45:08
【问题描述】:

我正在尝试在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 类达到rootborderPane,即:

public class SampleController implements Initializable {

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }
}

我应该将rootborderPane 设为全局和静态,还是有其他方法可以访问它们?

【问题讨论】:

  • 为什么要将控制器加载的面板包装在 BorderPanel 中?
  • 实际上我会在地图周围添加文本字段。我还将在底部添加一个播放器菜单。这就是我选择边框窗格并包装面板的原因。

标签: java javafx-2 javafx fxml


【解决方案1】:

root 面板可以使用

FXML 控制器轻松访问

@FXML 像任何组件一样标记。

<BorderPane  xmlns:fx="http://javafx.com/fxml" fx:id="root">
    ...
</BorderPane>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    相关资源
    最近更新 更多