有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JavaFX获取Enter Key的KeyCode以执行事件,并将文本字段转到输入的网址

当按下回车键进入输入的网址时,我试图获取回车键代码。当我尝试这样做时,它会给我一个错误

我怎样才能修好它,让它工作

package fxmlstuffs;

import javafx.fxml.Initializable;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import javafx.scene.web.WebEngine;
import javafx.scene.input.KeyEvent;

public class FXMLDocumentController implements Initializable {

    WebEngine web = new WebEngine();

    @FXML
    private TextField url;


    @Override
    public void initialize(URL location, ResourceBundle resources) {
        assert url != null : "fx:id =\"url\" was not injected: check your FXML file";

        url.setOnKeyPressed(new EventHandler<KeyEvent>(){
            @Override
            public void handle(KeyEvent ke){
                int key = ke.getKeyCode();
                if(key == KeyEvent.VK_ENTER){
                    web.load(url.getText());
                }
            }
        });
    }
}

直接来自Netbeans的具体错误:

错误1:

error: cannot find symbol
                int key = ke.getKeyCode();
  symbol:   method getKeyCode()
  location: variable ke of type KeyEvent

错误2:

error: cannot find symbol
                if(key == KeyEvent.VK_ENTER){
  symbol:   variable VK_ENTER
  location: class KeyEvent

共 (1) 个答案

  1. # 1 楼答案

    我得到的回车键是这样的:

        public class FXMLDocumentController implements Initializable {
    
            WebEngine web = new WebEngine();
    
            @FXML
            private TextField url;
    
    
            @Override
            public void initialize(URL location, ResourceBundle resources) {
                assert url != null : "fx:id =\"url\" was not injected: check your FXML file";
    
                url.setOnKeyPressed(new EventHandler<KeyEvent>(){
                    @Override
                    public void handle(KeyEvent ke){
                         KeyCode key = ke.getCode();
                        if(key == KeyCode.ENTER){
                            web.load(url.getText());
                        }
                    }
                });
            }
        }