Как создать компонент изображения в асинхронном блоке кода?JAVA

Программисты JAVA общаются здесь
Anonymous
Как создать компонент изображения в асинхронном блоке кода?

Сообщение Anonymous »

Попытка создать изображение асинхронно, а затем обновить пользовательский интерфейс через Push, однако изображение конструктора изображений (загрузка Handler DownloadHandler, String Alt) Throws Exception:

Код: Выделить всё

Exception in thread "" java.lang.NullPointerException: Cannot invoke "com.vaadin.flow.component.UI.getUIId()" because the return value of "com.vaadin.flow.component.UI.getCurrent()" is null
at com.vaadin.flow.server.communication.StreamRequestHandler.generateURI(StreamRequestHandler.java:247)
at com.vaadin.flow.server.StreamResourceRegistry.getURI(StreamResourceRegistry.java:226)
at com.vaadin.flow.server.StreamResourceRegistry.getURI(StreamResourceRegistry.java:209)
at com.vaadin.flow.internal.nodefeature.ElementAttributeMap.doSetResource(ElementAttributeMap.java:160)
at com.vaadin.flow.internal.nodefeature.ElementAttributeMap.setResource(ElementAttributeMap.java:144)
at com.vaadin.flow.dom.impl.BasicElementStateProvider.setAttribute(BasicElementStateProvider.java:332)
at com.vaadin.flow.dom.Element.setAttribute(Element.java:346)
at com.vaadin.flow.dom.Element.setAttribute(Element.java:380)
at com.vaadin.flow.component.html.Image.setSrc(Image.java:168)
at com.vaadin.flow.component.html.Image.(Image.java:115)
< /code>
code: < /p>
val ui = UI.getCurrent();
Thread.ofVirtual().start(() -> {
val img = new Image(DownloadHandler.fromInputStream(downloadEvent -> new DownloadResponse(
DriveUtils.getThumbInputStream(fileMetaBO),
fileMetaBO.getName(),
fileMetaBO.getMimeType(),
fileMetaBO.getLength())), ""); // exception in Image constructor
ui.access(() -> {
...
ui.push();
});
});
vaadin 24.8

Подробнее здесь: https://stackoverflow.com/questions/797 ... ck-of-code

Вернуться в «JAVA»