簡體   English   中英

JavaFX TreeView工具提示與TreeCell工具提示沖突

[英]JavaFX TreeView tooltip conflicts with TreeCell tooltip

在網絡上搜索時,找不到任何解決以下問題的提示:我有一個包含TreeView的JavaFX Pane。 在一開始,此TreeView是空的,因此我在fxml文件中添加了一個工具提示,建議用戶使用鼠標右鍵來訪問上下文菜單。

<TreeView fx:id="requirementsTreeView"  prefWidth="1000.0">
     <tooltip>
           <Tooltip text="Right mouse click to create root requirements" />
     </tooltip>
</TreeView>

這很好。 但是,當鼠標懸停在TreeView中的某個項目上時,即在TreeCell上時,顯示了相同的工具提示。 因此,我像這樣向TreeCell添加了另一個工具提示

private final class RequirementTreeCell extends TreeCell<UserRequirement> {

        @Override
        protected void updateItem(UserRequirement userRequirement, boolean empty) {
            super.updateItem(userRequirement, empty);
            if (!empty && userRequirement != null) {
                setText(userRequirement.toString());
                setGraphic(getTreeItem().getGraphic());
                setContextMenu(getContextMenu(userRequirement));
                setTooltip(new Tooltip("Right click to add sub-requirements"));
            } else {
                setText(null);
                setGraphic(null);
                setTooltip(null);
                setContextMenu(null);
            }
        }

..
}

但是當鼠標懸停在TreeCell上時,仍會顯示TreeView中的工具提示。 當鼠標懸停在TreeView的空白區域時,如何從顯示的TreeView中顯示工具提示,如果鼠標懸停在TreeCell之上,如何顯示TreeCell的工具提示?

先感謝您!!

編輯:我繼續測試TreeView的功能,並添加了更多TreeCells。 事實證明,行為取決於鼠標移動的方向以及TreeCells的位置。 如果鼠標來自Treeview區域並移到最后一個TreeCell上,則提示輸入錯誤。 如果我將鼠標進一步向上移動,則在倒數第二個TreeCell上過了一會兒,我會得到正確的工具提示。 如果然后在最后一個TreeCell上向下移動,我將再次獲得正確的工具提示。 聽起來像Javafx中的錯誤? 你怎么看?

我猜您只需要在樹不為空時將樹的工具提示設置為null。 在控制器中,您可以執行

Tooltip treeTooltip = new Tooltip("Right mouse click to create root requirements");
requirementsTreeView.tooltipProperty().bind(Bindings.createObjectBinding(() -> {
    if (requirementsTreeView.getRoot() == null) return treeTooltip ;
    return null ;
}, requirementsTreeView.rootProperty()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM