在JavaFX中,可以通过使用Event.getSource()
方法来判断是哪个TextField触发了EventHandler。Event.getSource()
方法返回触发事件的对象。
以下是一个示例代码,演示如何判断是哪个TextField触发了EventHandler:
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class TextFieldEventExample extends Application {
@Override
public void start(Stage primaryStage) {
TextField textField1 = new TextField();
TextField textField2 = new TextField();
EventHandler<ActionEvent> eventHandler = new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if (event.getSource() == textField1) {
System.out.println("TextField1 triggered the event.");
} else if (event.getSource() == textField2) {
System.out.println("TextField2 triggered the event.");
}
}
};
textField1.setOnAction(eventHandler);
textField2.setOnAction(eventHandler);
VBox root = new VBox(textField1, textField2);
Scene scene = new Scene(root, 200, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在上面的示例中,我们创建了两个TextField:textField1和textField2,并为它们都设置了相同的EventHandler。当用户在任何一个TextField中按下Enter键时,EventHandler会被触发。在EventHandler中,我们使用event.getSource()
方法来判断是哪个TextField触发了事件,并打印相应的消息。
这是一个简单的示例,你可以根据实际需求进行扩展和修改。
领取专属 10元无门槛券
手把手带您无忧上云