一個JavaFX 8控制器怎樣才能知道是否移,按Ctrl,Alt鍵或輸入鍵位於鍵盤的左側或右側部分?如何區分JavaFX中的左/右移,ctrl,alt和輸入鍵?
不幸的是中的getKeyLocation()
方法不存在javafx.scene.input.KeyEvent
類。
我也試圖通過截取window.onkeydown
檢查在JavaScript中event.location
,但不像V8或其它JS引擎,看來犀牛庫不歧視他們,並返回DOM_KEY_LOCATION_STANDARD
無論身在何處的關鍵所在。
由於整體密鑰捕獲似乎非常破碎(KeyEvent::getCode
/keyText
方法中的不一致),我開始認爲需要外部庫。 JavaFX(或Java)庫中是否有解決方案,如果不是,可以在不同平臺(Windows,Linux和Mac OS)上提供相同功能的輕量級庫?
在此先感謝!
更新
使用JavaFX + AWT組件(見suggestion below)試過了,但因爲它似乎JavaFX提供和轉換的事件是行不通的 - 不正確。
與JNativeHook(他們recently moved),它幾乎資格作爲變通,但無法識別某些鍵試過,具有計時不精確的,是一個有點尷尬實現,尤其是因爲我不能編譯本機代碼爲所有的平臺。許可條款也有點混亂(GPL爲穩定版本,這對我來說不是一種選擇,可能轉向LGPL ...)。
這是一個想法提交功能請求,但在JavaFX的行爲不支持getKeyLocation,返回值始終是'KEY_LOCATION_UNKNOWN'。他們在Java 8方面確實做得很好;)另外,我並不熱衷於將JavaFX與Awt混合使用 - 如果它能夠工作,那麼它就可以作爲解決方法,但顯然並非如此。 – RedGlyph 2014-09-01 08:19:13