2017-02-11 28 views
0

我有一個樣式問題。JavaFX禁用節點,但禁用關閉psuedoclass

我有一個舞臺有兩個獨立的窗格。當用戶位於窗格1上時,他們應該能夠在窗格1中的所有輸入字段和階段的工具欄之間選項卡,但選項卡不應該接着進入窗格2.當窗格2處於活動狀態時,該選項卡將相應地循環窗格2上的控件然後工具欄,但不是窗格1.

要完成此操作,我將在窗格1變爲活動狀態時禁用窗格2,反之亦然。

用戶抱怨說非活動窗格看起來不合適。我想知道是否有一種方法來禁用窗格,但沒有改變當前的陰影?

基本上我想設置窗格禁用,但不是僞類禁用任何下面的東西。

基本上我有做到這一點的方法:

setContentNodeDisabled(Boolean value) { 
    contentNode.setDisabled(value); 
    //I tried this -- But this didn't work 
    contentNode. pseudoClassStateChanged(PseudoClass.getPseudoClass("disabled"), false); 
} 

我需要保持殘疾人的造型同樣爲正常的事情,但在這種情況下,我們使用的每個窗格創建MDI類型的經驗,所以只有一個可以是活動的,所以理想情況下該節點看起來活躍,即使它被禁用 - 防止鍵盤導航到它。

回答

0

我能做到以下幾點:

setContentNodeDisabled(Boolean value) { 
    contentNode.setDisabled(value); 
    if(value && !contentNode.getStyleClass().contains("myDisabledPane")){ 
     contentNode.getStyleClass().add("myDisabledPane"); 
    } else if(!value && contentNode.getStyleClass().contains("myDisabledPane")){ 
     contentNode.getStyleClass().remove("myDisabledPane"); 
    } 

} 

添加以下CSS:

.myDisabledPane .label:disabled, 
.myDisabledPane .button:disabled, 
.myDisabledPane .toggle-button:disabled, 
.myDisabledPane .radio-button:disabled, 
.myDisabledPane .check-box:disabled, 
.myDisabledPane .hyperlink:disabled, 
.myDisabledPane .menu-button:disabled, 
.myDisabledPane .split-menu-button:disabled, 
.myDisabledPane .slider:disabled, 
.myDisabledPane .scroll-bar:disabled, 
.myDisabledPane .scroll-pane:disabled, 
.myDisabledPane .progress-bar:disabled, 
.myDisabledPane .progress-indicator:disabled, 
.myDisabledPane .text-input:disabled, 
.myDisabledPane .choice-box:disabled, 
.myDisabledPane .combo-box-base:disabled, 
.myDisabledPane .date-cell:disabled > *, /* This is set on children so border is not affected. */ 
.myDisabledPane .list-view:disabled, 
.myDisabledPane .tree-view:disabled, 
.myDisabledPane .table-view:disabled, 
.myDisabledPane .tree-table-view:disabled, 
.myDisabledPane .tab-pane:disabled, 
.myDisabledPane .titled-pane:disabled > .title, 
.myDisabledPane .accordion:disabled > .titled-pane > .title, 
.myDisabledPane .tab-pane > .tab-header-area > .headers-region > .tab:disabled, 
.myDisabledPane .menu:disabled, 
.myDisabledPane .menu-item:disabled > .label, 
.myDisabledPane .menu-item:disabled, 
.myDisabledPane .list-cell:filled:selected:focused:disabled, 
.myDisabledPane .list-cell:filled:selected:disabled, 
.myDisabledPane .tree-cell:filled:selected:focused:disabled, 
.myDisabledPane .tree-cell:filled:selected:disabled, 
.myDisabledPane .tree-cell > .tree-disclosure-node:disabled, 
.myDisabledPane .tree-table-row-cell > .tree-disclosure-node:disabled, 
.myDisabledPane .table-row-cell:selected:disabled, 
.myDisabledPane .tree-table-row-cell:selected:disabled, 
.myDisabledPane .table-cell:selected:disabled, 
.myDisabledPane .tree-table-cell:selected:disabled, 
.myDisabledPane .spinner:disabled { 
    -fx-opacity: 1.0; 
} 

這似乎只是爲工作是一個廣泛的行程和實際殘疾人領域,同時還禁用外觀啓用。