代码之家  ›  专栏  ›  技术社区  ›  MKaama

有没有一种简单的方法可以在JavaFX中显示提示文本?

  •  6
  • MKaama  · 技术社区  · 10 年前

    在Borland VCL库中,几乎所有控件都有 暗示 所有物在运行时,当您将鼠标放置在相应的控件上时,当鼠标光标停留在按钮上时,会弹出一个带有提示文本的小框,当您移动鼠标时,它会再次消失,就像Windows资源管理器和其他程序中的帮助消息一样。

    JavaFX中是否有类似的概念(实际上,我使用的是ScalaFX)?

    当然,我可以在没有装饰的情况下创建一个新的舞台,添加一些鼠标监听器等,但它是否已经在某个地方可用?

    2 回复  |  直到 10 年前
        1
  •  22
  •   Community CDub    8 年前

    您可以使用 Tooltip 控制

    用法示例

    如果需要控件上的工具提示,例如按钮,请设置工具提示:

    button.setTooltip(
        new Tooltip("Button of doom")
    );
    

    否则,对于其他节点类型(如形状),请安装工具提示:

    Circle circle = new Circle(15, 15, 42);
    Tooltip.install(
        circle,
        new Tooltip("Circle of light")
    );
    

    辅导的

    Oracle有一个专门针对 Tooltips .

    tooltip image

    如上所述,您可以在工具提示上设置一个“图形”,它可以是一个图像(或任何其他节点),非常灵活。

    工具提示样式

    其他选项

    如果工具提示不是您想要的,还有其他方法可以显示弹出窗口:

        2
  •  0
  •   Hornigold Arthur    7 年前

    此代码创建基于图形的工具提示。看看评论的htmlStr。。。。。您可以使用它以及thisToolTip.setStyle…..,看看会发生什么。您可以更改htmlStr中的样式和setStyle的字符串。然而,我无法使工具提示和窗格的大小匹配。所以有一个边框,但我将两种背景色的颜色都设置为玉米色。它给人一种没有边界的错觉。但事实并非如此。看到代码,如果你觉得有用,就使用它。

            private Tooltip createToolTip(String htmlStr) {
            Tooltip thisToolTip = new Tooltip();
    
    //        String htmlStr = "<body style=\"background-color:cornsilk; "
    //                + "border-style: none;\"> <u><b><font color=\"red\">Click Mouse's right button to see options</font></b></u><br><br>(3) Subha Jawahar of Chennai<br> now @ Chennai<br>Female <-> Married <-> Alive<br>Period : 1800 to 2099<br>D/o Dr. Subbiah [2] - <br> <b>Spouse :</b> Jawahar Rajamanickam [7] <br><br><b>Children :</b><br><br>Rudhra Jawahar [9]<br>Mithran Jawahar [10]<br><br></body>\n";
            WebView browser = new WebView();
            WebEngine webEngine = browser.getEngine();
            webEngine.loadContent(htmlStr);
    
            thisToolTip.setStyle("\n"
                    + "    -fx-border-color: black;\n"
                    + "    -fx-border-width: 1px;\n"
                    + "    -fx-font: normal bold 12pt \"Times New Roman\" ;\n"
                    + "    -fx-background-color: cornsilk;\n"
                    + "    -fx-text-fill: black;\n"
                    + "    -fx-background-radius: 4;\n"
                    + "    -fx-border-radius: 4;\n"
                    + "    -fx-opacity: 1.0;");
    
            thisToolTip.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
    
            thisToolTip.setGraphic(browser);
            thisToolTip.setAutoHide(false);
            thisToolTip.setMaxWidth(300);
            thisToolTip.setGraphicTextGap(0.0);
    
            return thisToolTip;
        }