我正在尝试创建自己的Tooltip类。基本上工具提示将是一个 标签底部的指针图形(FontAwesomeView)全部包含在 vbox 中。
我坚持的部分是,如何显示我的自定义工具提示在屏幕没有将其添加到父节点?
答案 0 :(得分:3)
您无需实施自己的工具提示,只需自定义内置工具提示即可。
默认工具提示:
自定义工具提示:
它也适用于在没有setTooltip方法的节点(如形状)上安装工具提示:
自定义工具提示的示例代码:
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.PopupWindow;
import javafx.stage.Stage;
public class BubbleTip extends Application {
public static void main(String[] args) {
launch(args);
}
private static final String SQUARE_BUBBLE =
"M24 1h-24v16.981h4v5.019l7-5.019h13z";
@Override
public void start(Stage stage) {
Label label = new Label("hello,");
label.setStyle("-fx-font-size: 16px;");
label.setTooltip(makeBubble(new Tooltip(" world")));
Circle circle = new Circle(20, Color.AQUA);
Tooltip.install(circle, makeBubble(new Tooltip("circle")));
VBox layout = new VBox(10, label, circle);
layout.setPadding(new Insets(20));
stage.setScene(new Scene(layout));
stage.show();
}
private Tooltip makeBubble(Tooltip tooltip) {
tooltip.setStyle("-fx-font-size: 16px; -fx-shape: \"" + SQUARE_BUBBLE + "\";");
tooltip.setAnchorLocation(PopupWindow.AnchorLocation.WINDOW_BOTTOM_LEFT);
return tooltip;
}
}
这个答案基于以下答案: