【问题标题】:JavaFX: how to set correct tooltip position?JavaFX:如何设置正确的工具提示位置?
【发布时间】:2012-10-24 12:36:19
【问题描述】:

我有一个TextField,我希望在某些情况下显示Tooltip

执行检查后,我运行以下代码:

textFieldUsername.setTooltip(new Tooltip("Enter username!"));
textFieldUsername.getTooltip().setAutoHide(true);
textFieldUsername.getTooltip().show(textFieldUsername, 1, 1);

因此,当有人尝试使用空用户名登录时,他会在“用户名”TextField 上收到提示 Tooltip

但是当涉及到操作时,Tooltip 会在屏幕的左上角弹出。

我应该计算我的场景的坐标,然后将我的TextField 坐标添加到它们,或者有一种方法可以将来自show() 调用的这些1, 1 参数设置为相对于TextField 位置?

【问题讨论】:

    标签: position tooltip javafx-2 javafx


    【解决方案1】:

    我认为坐标总是相对于屏幕。要计算组件坐标,您需要合并场景和窗口坐标。

    Point2D p = label.localToScene(0.0, 0.0);
    label.getTooltip().show(label,
            p.getX() + label.getScene().getX() + label.getScene().getWindow().getX(),
            p.getY() + label.getScene().getY() + label.getScene().getWindow().getY());
    

    【讨论】:

    • 正确,如 javadoc 中所述:“public void show(Node ownerNode, double screenX, double screenY) 在相对于屏幕的指定 x,y 位置显示弹出窗口。”
    猜你喜欢
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多