【发布时间】:2019-09-29 20:13:35
【问题描述】:
我查看了似乎与我的问题相似的 stackoverflow 问题,但没有任何帮助。
这是我的问题:
对于一个项目,我正在制作一个没有 FXML 的纯 Java 的 JavaFX 应用程序。我有两个类,一个控制器 Controller 类和一个包含 gui 东西 GUI 的类。
Controller 有一个GUI 类型的成员变量,我正在尝试将事件处理程序分配给GUI 中的一个按钮,但它似乎不起作用。它仅在我尝试在 GUI 类中实现处理程序时才有效,但我需要它在 Comtroller 中工作。
Controller的构造函数中如下:
this.view = view;
view.addSimpleHandler(new SimpleHandler());
view 是 GUI 类型,addSimpleHandler 是 view 的成员函数
SimpleHandler 是Controller 的内部类,它实现了EventHandler 并覆盖了handle() 函数
public void addSimpleHandler(EventHandler<ActionEvent> e) {
simpleButton.setOnAction(e);
}
这是GUI的主要方法和类签名
public class GUI extends Application {
//member variables for the GUI design including simpleButton
private Button simpleButton;
public static void main(String[] args) {
GUI view = new GUI();
Controller controller = new Controller(view);
Application.launch(view.getClass(), args);
}
public GUI() {
simpleButton = new Button("Simple button");
//rest of code is setting up GUI into my panes
}
public void start(Stage primaryStage) throws Exception {
Scene scene = new Scene(mainPane, sceneWidth, sceneHeight);
//mainPane is a pane that contains simpleButton with a screenwidth and screenHeight
primaryStage.setTitle("Simple");
primaryStage.setScene(scene);
primaryStage.show();
}
【问题讨论】:
-
显示你的整个代码。
-
@mentallurg 这是唯一涉及的代码
-
显然不是。例如,没有定义“simpleButton”。如果不清楚您真正拥有什么代码,则很难为您提供帮助。
-
@mentallurg 添加了简单的按钮部分。
-
没有人知道您的 Controller 和 SimpleHandler 中发生了什么。如果您不显示代码,则只能猜测。祝你好运。
标签: java javafx model-view-controller