[英]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.