0

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 のバグのようですね?! どう思いますか?

4

1 に答える 1