”;
The tooltip is a small pop-up window that displays some additional information when the user hovers over a node or a control. It is mainly used for explaining the functionality of a button, menu, or image or to provide some hints for a text field. In the below figure, we can see the tooltip explaining the menu”s functionality −
Tooltip in JavaFX
In JavaFX, the tooltip is represented by a class named Tooltip which is a part of javafx.scene.control package. Each UI component of this package comes with a built-in method named setTooltip() which is used for associating a tooltip. We can specify the tooltip text either by passing it to the setText() method or by using the constructor listed below −
-
Tooltip() − It is the default constructor that constructs a tooltip without any texts.
-
Tooltip(String str) − It constructs a new tooltip with the predefined text.
Steps to create a tooltip in JavaFX
To create a Tooltip in JavaFX, follow the steps given below.
Step 1: Create a node to associate with Tooltip
We know that a tooltip explains the features of specified node. This node can be any JavaFX component such as menu, image and text fields. Here, we are going to use an image as a node. To create an image in JavaFX, instantiate the ImageView class and pass the path of image as a parameter value to its constructor.
//Passing path of an image Image image = new Image(new FileInputStream("tutorials_point.jpg")); //Setting the image view ImageView imageView = new ImageView(image);
Step 2: Instantiate the Tooltip class
To create a tooltip in JavaFX, instantiate the Tooltip class and pass the tooltip text as a parameter value to its constructor using the below code −
//Creating tool tip for the given image Tooltip toolTipTxt = new Tooltip("This is the new logo of Tutorialspoint");
Step 3: Associate the tooltip to the node
To associate the Tooltip to the specified node, we use the install() mehtod which accepts Tooltip and ImageView objects as arguments.
//Setting the tool tip to the image Tooltip.install(imageView, toolTipTxt);
Step 4: Launching Application
After creating the Tooltip, follow the given steps below to launch the application properly −
-
Firstly, create a VBox that holds the nodes vertically.
-
Next, instantiate the class named Scene by passing the VBox object as a parameter value to its constructor along with the dimensions of the application screen.
-
Then, set the title of the stage using the setTitle() method of the Stage class.
-
Now, a Scene object is added to the stage using the setScene() method of the class named Stage.
-
Display the contents of the scene using the method named show().
-
Lastly, the application is launched with the help of the launch() method.
Example
In the following example, we are going to create a tooltip in JavaFX application. Save this code in a file with the name JavafxTooltip.java.
import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.control.Tooltip; import javafx.scene.layout.VBox; import java.io.FileInputStream; import java.io.FileNotFoundException; import javafx.stage.Stage; public class JavafxTooltip extends Application { @Override public void start(Stage stage) throws FileNotFoundException { //Creating a label Label labeltext = new Label("Hover over Image to see the details...."); //Passing path of an image Image image = new Image(new FileInputStream("tutorials_point.jpg")); //Setting the image view ImageView imageView = new ImageView(image); //Setting the position of the image imageView.setX(50); imageView.setY(25); //setting the fit height and width of the image view imageView.setFitHeight(350); imageView.setFitWidth(350); //Setting the preserve ratio of the image view imageView.setPreserveRatio(true); //Creating tool tip for the given image Tooltip toolTipTxt = new Tooltip("This is the new logo of Tutorialspoint"); //Setting the tool tip to the image Tooltip.install(imageView, toolTipTxt); // to display the content vertically VBox box = new VBox(5); box.setPadding(new Insets(25, 5 , 5, 50)); box.getChildren().addAll(labeltext, imageView); //Setting the stage Scene scene = new Scene(box, 400, 350); stage.setTitle("Example of Tooltip in JavaFX"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
To compile and execute the saved Java file from the command prompt, use the following commands −
javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxTooltip.java java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxTooltip
Output
When we execute the above code, it will generate a Tooltip for an image as shown in the following output.
Adding icons to the Tooltip
Icons are small images that graphically illustrate a command or function of an application. To add icons to the JavaFX tooltip, we use the setGraphic() method which accepts the ImageView object and displays the icon on the left of tooltip text.
Example
Following is the JavaFX program that will create a Tooltip with icon. Save this code in a file with the name JavafxTooltip.java.
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.control.Tooltip; import javafx.scene.layout.VBox; import java.io.FileInputStream; import java.io.FileNotFoundException; import javafx.stage.Stage; public class JavafxTooltip extends Application { public void start(Stage stage) throws FileNotFoundException { // Creating a label Label labeltext = new Label("Hover over this text to see the tooltip...."); // Instantiating Tooltip class Tooltip toolT = new Tooltip(); // Passing path of an image Image icon = new Image(new FileInputStream("faviconTP.png")); // adding the icon for tooltip toolT.setGraphic(new ImageView(icon)); // adding the text toolT.setText("This is the new logo of Tutorialspoint"); // setting the tooltip to the label labeltext.setTooltip(toolT); //Setting the stage Scene scene = new Scene(labeltext, 400, 300); stage.setTitle("Example of Tooltip in JavaFX"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
Compile and execute the saved Java file from the command prompt using the following commands −
javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxTooltip.java java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxTooltip
Output
On executing, the above program will generate the following output −
”;