【问题标题】:How to show Image as tooltip in JavaFX?如何在 JavaFX 中将图像显示为工具提示?
【发布时间】:2016-10-21 14:14:14
【问题描述】:

我想将图像显示为工具提示。它工作正常,但在某些随机点显示波动。我想正常显示它而不会波动。

我在鼠标进入事件时显示一个新场景(我在其中添加了带有图像的图像视图)并在鼠标离开事件事件时关闭它

//  MOUSE ENTER PHOTO CORRECTIO
@FXML
private void mouseEnterPhotoCorrection(MouseEvent event) {
    if (f_ShowToolTip) {
        Stage stg = funShowImageTooltip();
        double x, y;
        x = event.getScreenX();
        y = event.getScreenY();
        stg.setX(x);
        stg.setY(y);
        stg.show();
        f_ShowToolTip = false;
    }
}

//  MOUSE LEAVE PHOTO CORRECTIO
@FXML
private void mouseLeavePhotoCorrection(MouseEvent event) {
    funHideImageTooltip();
    f_ShowToolTip = true;
}

/****************************** 函数 *************** ******************/

Stage s;
boolean f_ShowToolTip;

//  FUNCTION TO SET INITAL STATE OF PHOTOS AND CORRECTION
private void funInitPhotosCorrection()
{
    f_ShowToolTip = true;
}

private Stage funShowImageTooltip()
{
    try {
        s = new Stage();

        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("frmImageToolTip.fxml"));

        Parent root = (Parent) fxmlLoader.load();
        Scene scene = new Scene(root);                

        s.setScene(scene);
        s.setResizable(false);

        s.initModality(Modality.WINDOW_MODAL);
        s.initStyle(StageStyle.UNDECORATED);

        s.setResizable(false);

        double x, y;
        //x = btn_Red.

        s.show();

        }catch(Exception e1)
        {
        }
    return s;
}

private void funHideImageTooltip()
{
    try {
        s.close();
    } catch (Exception e) {
    }

}    

【问题讨论】:

    标签: java javafx javafx-2 javafx-8


    【解决方案1】:

    如果您只是想在Node(在您的情况下为Button)上有一个工具提示,使用Tooltip 及其graphicProperty 而不是显示不同的Stage 是合理的。

    // Load the image with the needed size
    Image image = new Image("...", 150, 150, true, true);
    
    // Place it over a Button
    Button button = new Button();
    
    Tooltip tooltip = new Tooltip();
    tooltip.setGraphic(new ImageView(image));
    
    button.setTooltip(tooltip);
    

    【讨论】:

    • 什么是“不工作”?如果您将“...”替换为有效的内容,则它正在工作。
    • 当我将此代码添加到我的时,我的表单无法正确加载
    • 我没有看到你的代码。我不知道你做了什么。我发布的 sn-p 显示了如何将 Tooltip 添加到显示图片的 Button 中。这是一个工作的sn-p。如果您需要进一步的帮助,请使用您当前的代码更新问题。
    • // 显示图像工具提示 - 2016 年 6 月 28 日 private 工具提示 funShowToolTip(String imgUrl){ Image image = new Image(imgUrl, 150, 150, true, true);工具提示 tooltip = new Tooltip(); tooltip.setGraphic(new ImageView(image));返回工具提示; } // 为按钮分配工具提示 private void funAssignToolTip() { btn_PC_OK.setTooltip(funShowToolTip("C:\\Users\\pc1\\Pictures\\DCPL\\clock.png")); }
    • 这就是我所做的。我在 initialize() 中调用第二个函数 funAssignToolTip()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多