La fonctionnalité que vous recherchez est mis en œuvre the Tooltip
class et vous pouvez ajouter un à un ImageView
en utilisant Tooltip.install
:
@Override
public void start(Stage primaryStage) {
Tooltip tooltip = new Tooltip("stackoverflow logo");
ImageView imageView = new ImageView("https://cdn.sstatic.net/Sites/stackoverflow/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();
}
Vous pouvez facilement écrire une classe utilitaire qui vous permet d'installer le Tooltip
à partir d'un fichier FXML:
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/stackoverflow/company/img/logos/so/so-logo.png?v=9c558ec15d8a"/>
</image>
<TooltipUtil.tooltip>
<Tooltip text="stackoverflow logo" />
</TooltipUtil.tooltip>
</ImageView>
</children>
</StackPane>
Si i ha J'ai défini mon image dans fxml, que dois-je choisir d'appeler la fonction ci-dessus une fois que je survole l'image? –
@DanialKosarifa Donne à l'ImageView un 'id' (par exemple myImageView). Ensuite, dans votre contrôleur, ajoutez '@FXML private ImageView myImageView;'. Par la suite, vous pouvez ajouter l'info-bulle dans votre contrôleur. – Jai
@Danial Ajout d'un code montrant comment ajouter l'info-bulle du fxml lui-même ... – fabian