我在場景上有一個按鈕,只要按下空格鍵或回車鍵,這個按鈕就會自動觸發。我希望用戶能夠在不觸發此按鈕的情況下鍵入這些鍵。我已經嘗試root.requestFocus()在場景中的其他節點上執行和調用請求焦點方法。按下這些鍵時,如何防止此按鈕觸發。謝謝你的幫助。編輯:到目前為止,我剛剛完成了使 Javafx 應用程序工作的樣板代碼,添加了該按鈕和一些標簽。我已經在我的應用程序的幾個節點中嘗試了 requestFocus() 方法,但都沒有產生任何影響。我還有一個scene.setOnKeyPressed按鍵的動作事件監聽器。
3 回答

不負相思意
TA貢獻1777條經驗 獲得超10個贊
您可以使用該button.setFocusTraversable()方法(docs)。這可以防止按鈕自動聚焦,例如通過按TAB。
Button button = new Button("Some Action");
button.setFocusTraversable(false);
button.setOnAction(event -> System.out.println("Some action called!"));

白衣染霜花
TA貢獻1796條經驗 獲得超10個贊
假設您defaultFocusNode有焦點,并且您不希望您在單擊時button執行其默認行為,即為自己(和遠離defaultFocusNode)焦點button。當button獲得焦點時,此代碼將立即將焦點返回給defaultFocusNode.
button.focusedProperty().addListener((observableValue, oldValue, newValue) -> {
if (newValue) defaultFocusNode.requestFocus();
});
添加回答
舉報
0/150
提交
取消