Подсказка Javafx мигает, когда она слишком велика - PullRequest
2 голосов
/ 20 апреля 2019

Я хочу отобразить маленькое изображение и отобразить изображение в оригинальном размере, когда маленький находится при наведении.

Gif

Мне нужна всплывающая подсказка, потому что изображение в оригинальном размере не может поместиться в окне.

Исполняемый код:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Tooltip;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        String bigImageUrl = "https://cdn.lynda.com/course/184457/184457-636806635954727169-16x9.jpg";
        String smallImageUrl = "https://assets.exercism.io/tracks/java-bordered-turquoise.png";

        VBox root = new VBox();
        root.getChildren().add(loadTooltipWithImage(smallImageUrl));
        root.getChildren().add(loadTooltipWithImage(bigImageUrl));
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }

    private Label loadTooltipWithImage(String url) {
        ImageView bigImage = new ImageView(new Image(url));
        ImageView smallImage = new ImageView(new Image(url));
        smallImage.setFitHeight(100.0);
        smallImage.setFitWidth(100.0);

        Label label = new Label();
        label.setGraphic(smallImage);

        Tooltip tooltip = new Tooltip();
        tooltip.setGraphic(bigImage);
        label.setTooltip(tooltip);
        return label;
    }
}

Подсказка отображает изображение, когда узел находится при наведении, но когда изображение слишком велико, мышь не может быть перемещена:

  1. Узел парящий
  2. Подсказка отображает изображение
  3. Узел не парящий
  4. Всплывающая подсказка не отображается
  5. Перейти к шагу 1

Что я пробовал:

  • Установить на всплывающей подсказке мышь в значение true, но я не смог
  • Используйте панель вместо всплывающей подсказки, но окно (сцена) слишком маленькое для изображения
  • Установите фильтры мыши, но они мне не помогают
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...