我在場景中有一個按鈕,每當(dāng)按下空格鍵或回車鍵時,這個按鈕都會自動觸發(fā)。我希望用戶能夠在不觸發(fā)此按鈕的情況下鍵入這些鍵。我已經(jīng)嘗試過在場景中的其他節(jié)點(diǎn)上執(zhí)行并調(diào)用請求焦點(diǎn)方法。如何防止在按下這些鍵時觸發(fā)此按鈕。感謝您的任何幫助。root.requestFocus()編輯:到目前為止,我剛剛完成了使Javafx應(yīng)用程序工作的樣板代碼,添加了該按鈕和一些標(biāo)簽。我已經(jīng)在應(yīng)用程序中的幾個節(jié)點(diǎn)中嘗試了 requestFocus() 方法,但這些節(jié)點(diǎn)都沒有帶來任何影響。我還有一個動作事件偵聽器,用于按下的鍵。scene.setOnKeyPressed
3 回答
慕的地10843
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個贊
您可以使用該方法(文檔)。這可以防止按鈕自動聚焦,例如通過按 Tab 鍵。button.setFocusTraversable()
Button button = new Button("Some Action");
button.setFocusTraversable(false);
button.setOnAction(event -> System.out.println("Some action called!"));
小唯快跑啊
TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個贊
假設(shè)你有焦點(diǎn),你不希望你做它的默認(rèn)行為,即在被點(diǎn)擊時為自己(和遠(yuǎn)離)焦點(diǎn)。當(dāng)獲得焦點(diǎn)時,此代碼將立即將焦點(diǎn)交還給 。defaultFocusNodebuttondefaultFocusNodebuttonbuttondefaultFocusNode
button.focusedProperty().addListener((observableValue, oldValue, newValue) -> {
if (newValue) defaultFocusNode.requestFocus();
});添加回答
舉報
0/150
提交
取消
