gpt4 book ai didi

java - 如何创建处理事件的方法?

转载 作者:行者123 更新时间:2023-12-01 09:55:47 25 4
gpt4 key购买 nike

public void start(Stage primaryStage) throws Exception {
// TODO Auto-generated method stub

Pane p = new Pane();
p.setPrefSize(400, 300);
Button btn = new Button("Submit");
btn.relocate(10, 10);

TextField tf = new TextField();
tf.relocate(10, 40);

btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
text = tf.getText();
System.out.println(text);
}
});

btn.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if(event.getCode().equals(KeyCode.ENTER))
text = tf.getText();

System.out.println(text);
}
});

p.getChildren().addAll(btn,tf);
Scene sc = new Scene(p);
primaryStage.setScene(sc);
primaryStage.show();
}

这是我的代码。正如你所看到的,我有两个事件处理程序。一个检查是否按下了 Enter,另一个检查是否按下了按钮。我的目标是创建一种方法,每当这两个事件处理程序之一激活时,它就会从文本字段中获取输入。

在这个例子中,我只有一个 TextField,但在我的应用程序中,我有很多 TextField,所以如果我在两个 EventHandler 中做同样的事情,我的代码就会加倍。我想可以选择 make 方法来为我做到这一点。

最佳答案

My goal is to make one method and whenever one of these two EventHandlers activate it takes input from TextFields.

In this example i have only one TextField but in my application i have plenty of them

如果目标是一个方法,那么就制定一个方法。如果您有许多文本字段并希望在任何句柄方法中对它们执行类似的操作,请使用参数。

public void printTextField(TextField tf)
{
System.out.println(tf.getText());
}

您现在可以在代码中的任何位置(例如在事件处理程序中)调用

printTextField(tf);

关于java - 如何创建处理事件的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37238515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com