2017-02-15 32 views
2

我有一個Tab與一些內容:ScrollBar和其他。JavaFX TabPane禁用製表符切換鍵

ScrollBar有按鍵事件處理程序:

但是,如果我按這些按鈕,Tabs切換,因爲TabPane也有一個密鑰處理程序。

如何禁用TabPane的默認事件處理程序或更改切換策略?

回答

1

問題在於默認情況下ScrollBar不是focus traversable,並且僅針對焦點Node s纔會觸發關鍵事件。

您可以設置ScrollBar焦點遍歷:

sb.setFocusTraversable(true); 

sb.setOnKeyPressed(e -> { 
    if (e.getCode().equals(KeyCode.RIGHT)) 
     sb.setValue(sb.getValue()+0.01); 
    else if(e.getCode().equals(KeyCode.LEFT)) 
     sb.setValue(sb.getValue()-0.01); 
}); 

在這種情況下,每當ScrollBar集中,關鍵事件的處理。