Web を検索すると、次の問題を解決するヒントが見つかりませんでした: TreeView を含む JavaFX ペインがあります。当初、この TreeView は空だったので、fxml ファイルにツールチップを追加しました。これにより、マウスの右ボタンを使用してコンテキスト メニューにアクセスするようユーザーに提案します。
<TreeView fx:id="requirementsTreeView" prefWidth="1000.0">
<tooltip>
<Tooltip text="Right mouse click to create root requirements" />
</tooltip>
</TreeView>
これはうまくいきます。ただし、マウスが TreeView の項目、つまり TreeCell の上にある場合、同じツールチップが表示されました。したがって、このように TreeCell に別の ToolTip を追加しました
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 に移動すると、間違ったツールチップが表示されます。マウスをさらに上に移動すると、最後の 2 番目の TreeCell で、しばらくすると正しいツールチップが表示されます。その後、最後の TreeCell に戻ると、正しいツールチップが再び表示されます。Javafx のバグのようですね?! どう思いますか?