[英]How to use KeyEvent in JavaFX project?
我已經搜索了很長時間,如何編寫一個KeyEvent
來允許我按下ENTER key
按鈕。 請注意,我正在使用JavaFX和FXML
文件。
問題是,當在FXML文件的onKeyTyped文本字段中設置時,FXML文件不接受它。 它說Handle method not found
。 它只是接受ActionEvent
方法,所以我嘗試了這段代碼:
@FXML
private void key (KeyEvent evt) throws IOException{
if (evt.getCode() == KeyEvent.VK_ENTER){
String az = text1.getText();
//c.1
if(az.contains("1")){
String hh = text11.getText();
Socket socket = null;
InetSocketAddress isa = new InetSocketAddress (hh,80);
}
}
}
那么請有人幫助我嗎?
您的代碼幾乎沒有問題:
您正在使用onKeyTyped
而不是onKeyPressed
。 有關更多信息, 請訪問此鏈接
您最有可能使用java.awt.event.KeyEvent
,它將不適用於JavaFX events
。 嘗試使用javafx.scene.input.KeyEvent
。
我得出這個結論的原因是因為JavaFX不支持KeyEvent.VK_ENTER
,而是具有KeyCode.ENTER
下面顯示了一個具體示例,您可以使用相同的方法將其轉換為FXML:
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class ButtonExample extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
BorderPane pane = new BorderPane();
Button button = new Button("Press Me!");
pane.setCenter(button);
Scene scene = new Scene(pane, 200, 200);
primaryStage.setScene(scene);
primaryStage.show();
button.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.ENTER) {
System.out.println("Enter Pressed");
}
}
});
}
public static void main(String[] args) {
launch(args);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.