2013-07-01 76 views
3

我正在使用JavaFx作爲一個小應用程序,並且希望在用戶點擊「幫助」按鈕時在textArea上顯示工具提示。Javafx:使用按鈕激活工具提示

將tootltip鏈接到我的textArea沒有問題,但當用戶單擊按鈕時無法激活它。有沒有辦法做到這一點?

+0

您嘗試顯示哪個事件? –

回答

6

顯示按需工具提示的能力要求的分辨率的RT-19538 Customizable visibility timing for Tooltip,其未在JavaFX的2.2實現。

作爲一種變通方法,你可以嘗試下面的任何可能的策略:

  1. ContextMenu顯示您的工具提示數據,而不是。使用ContextMenu,您可以完全控制它的顯示時間。
  2. 您可以爲您的所需功能創建自定義PopupControl
  3. 您可以使用自定義實現的皮膚替換默認的TooltipSkin,該皮膚允許您控制何時顯示工具提示。
  4. 您可以實現RT-19538和到​​項目提供一個補丁,TooltipTooltipSkin

第三方庫如Jide's JavaFX Beta Release提供特殊類,如裝飾公用事業,IntelliHints和ShapedPopups這可能你的情況是有用的。

+0

對於我來說,列表中的第一個工作正常 – Dimitris

7

這是你在找什麼:

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()); 

} 

只需通過按鈕的輸入,而不是控制。