当我在 JavaFx 中将鼠标悬停在图像上时如何显示图像标题

How to show a title for image when I hover over it in JavaFx

我正在通过 JavaFx 做一个项目,我有一张图片,当我将鼠标悬停在图片上方时,我想显示有关该图片的一些信息(如 html 中的标题标签)。

知道我该怎么做吗?

使用Tooltip (Tooltip.install()).

Tooltip.install(myImageView, new Tooltip("This is my image."));

您正在寻找的功能已在 the Tooltip class 中实现,您可以使用 Tooltip.install:

ImageView 添加一个
@Override
public void start(Stage primaryStage) {
    Tooltip tooltip = new Tooltip("Whosebug logo");
    ImageView imageView = new ImageView("https://cdn.sstatic.net/Sites/Whosebug/company/img/logos/so/so-logo.png?v=9c558ec15d8a");
    imageView.setPickOnBounds(true);
    Tooltip.install(imageView, tooltip);

    StackPane root = new StackPane(imageView);

    Scene scene = new Scene(root);

    primaryStage.setScene(scene);
    primaryStage.show();
}

您可以轻松编写一个实用程序 class,允许您从 fxml 文件安装 Tooltip

package fxml;

import javafx.scene.Node;
import javafx.scene.control.Tooltip;

public final class TooltipUtil {

    private TooltipUtil() {}

    public static void setTooltip(Node node, Tooltip tooltip) {
        Tooltip.install(node, tooltip);
    }

    // only here for the FXMLLoader
    @Deprecated
    public static Tooltip getTooltip(Node node) {
        throw new UnsupportedOperationException();
    }

}
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Tooltip?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.StackPane?>
<?import fxml.TooltipUtil?>

<StackPane xmlns:fx="http://javafx.com/fxml/1">
    <children>
        <ImageView pickOnBounds="true" >
            <image>
                <Image url="https://cdn.sstatic.net/Sites/Whosebug/company/img/logos/so/so-logo.png?v=9c558ec15d8a"/>
            </image>
            <TooltipUtil.tooltip>
                <Tooltip text="Whosebug logo" />
            </TooltipUtil.tooltip>
        </ImageView>
    </children>
</StackPane>