簡體   English   中英

JavaFX-獲取EnterKey的KeyCode以執行帶有文本字段的事件以轉到輸入的網址

[英]JavaFX - Getting KeyCode for Enter Key to execute Event with Text Field to go to entered web address

我試圖在按下回車鍵轉到輸入的網址時獲取回車鍵密碼。 當我嘗試這樣做時,它給我一個錯誤。

我該如何修復它才能起作用?

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

要詳細說明blaster的答案,這是因為您要混合使用JavaFX和AWT KeyEvent類。 您正在使用javafx.scene.input KeyEvent.getKeyCode() ,而常數KeyEvent.VK_*則用於java.awt.event

我得到這樣的ENTER鍵:

    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());
                    }
                }
            });
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM