Nano Hash - криптовалюты, майнинг, программирование

Можно ли встроить WebView в TextFlow?

В образцах OpenJDK для TextFlow говорится, что он может иметь произвольные узлы в качестве дочерних элементов, например. Кнопка. Мне было интересно, может ли WebView быть возможным потомком? Если это так, то я, должно быть, делаю что-то не так. Когда я добавляю его в TextFlow, WebView просто занимает место, но ничего не отображает. Контент, который я пробовал, варьируется от простых HTML-страниц до видео с таких сервисов, как YouTube.

Поскольку этот элемент управления является довольно новым, мне не удалось найти существующий вариант использования в Интернете.

Если вам интересно, зачем мне это. У меня есть ListView, который отображает богатый контент. Если TextFlow способен отображать любой узел, это избавит меня от создания нескольких классов расширения для различных типов, которые я хочу отображать в ListView (например, видео, форматированный текст, HTML — это я уже сделал, и они отлично работают), и я могу легко управлять контентом, просто управляя дочерними элементами TextFlow.

Спасибо.


Ответы:


1

Да, ты можешь. Обратите внимание, что веб-представление будет отображаться с использованием его baselineOffset, что не подходит для использования в TextFlow (я думаю, что произойдет, если его нижний край будет выровнен с нижним краем текста, и он будет обрезан до высота текстовой строки.) Вы можете обойти это, обернув его в Group:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.TextFlow;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class WebViewInTextFlow extends Application {

    @Override
    public void start(Stage primaryStage) {
        TextFlow flow = new TextFlow();

        WebView webView = new WebView();
        webView.getEngine().getLoadWorker().stateProperty().addListener((obs, oldState, newState) -> System.out.println(newState));
        webView.getEngine().load("http://stackoverflow.com/questions/31353921/is-webview-embeddable-in-textflow/31357609#31357609");


        flow.getChildren().addAll(new Text("Some text"), new Group(webView), new Text("Some more text"));

        primaryStage.setScene(new Scene(flow, 800, 800));
        primaryStage.show();
    }

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

введите здесь описание изображения

11.07.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..