[英]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.