0

所以我想知道我如何在課堂中分離事件,並在另一個課程中擁有GUI代碼,而不必直接瞭解彼此。 我最近只在一個類中工作,在這裏我一直在啓動方法中放置GUI代碼和監聽器。javafx - 單獨的EventHandler和gui代碼

這是iv'e迄今所做但按鈕這麼想的工作:

GUI類:

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); 
    } 
} 
+0

你沒有設置事件處理程序的按鈕 –

回答

0

設置c ontrol類作爲按鈕的事件處理程序..

button.setOnAction(new Control(this)) ; 
+0

謝謝你的幫助,謝謝! – Michael

+0

如果它有效並且是解決您的問題的答案,請接受答案。以便其他人也將受益 –