javafx - 单独的事件处理程序和 gui 代码



所以我想知道如何在一个类中分离事件并在另一个类中拥有GUI代码,而他们彼此没有直接的知识。我最近只在一个类中工作,我一直在将 GUI 代码和侦听器放在 start 方法中。

这是 IV'e 到目前为止所做的,但按钮剂量不起作用:

图形用户界面类:

package application;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;

public class GUI extends Application {
Button btn1 = new Button("press me");
@Override
public void start(Stage primaryStage) {
    try {
        BorderPane root = new BorderPane();
        Scene scene = new Scene(root,400,400);
        root.setCenter(btn1);
        primaryStage.setScene(scene);
        primaryStage.show();

       } catch(Exception e) {
        e.printStackTrace();
        }
    }

}

控制器类:

package application;
import javafx.event.Event;
import javafx.event.EventHandler;
public class Control implements EventHandler<Event>{
GUI gui;
public Control(GUI gui) {
    this.gui = gui;
}
@Override
public void handle(Event event) {
    Object cmd = event.getSource();
    if(gui.btn1.equals(cmd)){
        System.out.println("your pressed btn1");
      }
   }
}

主类:

package application;
public class Main extends GUI {
public static void main(String[] args) {
    launch(args);
    GUI gui = new GUI();
    Control control = new Control(gui);
   }
}

将控件类设置为按钮的事件处理程序。

button.setOnAction(new Control(this )) ;

最新更新