Javafx:使用按钮激活工具提示

Syl*_*lCh 6 javafx button tooltip

我正在使用JavaFx作为一个小应用程序,并希望在用户单击"帮助"按钮时在textArea上显示工具提示.

将tootltip链接到textArea没有问题,但是当用户单击按钮时无法激活它.有没有办法做到这一点?

Asp*_*ant 10

这就是你要找的东西:

final Button helpButton = new Button("Help");
helpButton.setOnAction(new EventHandler()
{
    public void handle(Event arg0)
    {
        showTooltip(stage, helpButton, "test tool tip", null);
    }
});

public static void showTooltip(Stage owner, Control control, String tooltipText,
    ImageView tooltipGraphic)
{
    Point2D p = control.localToScene(0.0, 0.0);

    final Tooltip customTooltip = new Tooltip();
    customTooltip.setText(tooltipText);

    control.setTooltip(customTooltip);
    customTooltip.setAutoHide(true);

    customTooltip.show(owner, p.getX()
        + control.getScene().getX() + control.getScene().getWindow().getX(), p.getY()
        + control.getScene().getY() + control.getScene().getWindow().getY());

}
Run Code Online (Sandbox Code Playgroud)

只需将按钮作为输入而不是控件传递.


jew*_*sea 7

按需显示工具提示的功能需要解决Tooltip的RT-19538可自定义可见性时序,这在JavaFX 2.2中未实现.

作为解决方法,您可以尝试以下任何可能的策略:

  1. 而是在ContextMenu中显示工具提示数据.使用ContextMenu,您可以完全控制何时显示.
  2. 您可以为所需功能创建自定义PopupControl.
  3. 您可以使用自定义实现的外观替换默认的TooltipSkin,该外观允许您控制何时显示工具提示.
  4. 您可以实现RT-19538,并提供一个补丁,工具提示TooltipSkin的OpenJFX项目.

第三方库,如Jide的JavaFX Beta Release,提供了类似Decorator实用程序,IntelliHints和ShapedPopup的特殊类,这些类可能对您的情况有用.