Я использую JavaFX WebView в качестве «чата-контейнера» для сообщений.JavaFX WebView бросает исключение
Everytime новое сообщение приходит, я называю:
engine.executeScript("window.scrollTo(0, document.body.scrollHeight);");
(у меня также есть чек, если-, так что я не выполнить строку, если пользователь прокрутил вверх)
Однако , эта строка, как представляется, вызывает исключение каждый раз, когда полоса прокрутки не видна, потому что полоса прокрутки, по-видимому, лениво инициализирована.
java.lang.NullPointerException
at com.sun.javafx.webkit.theme.ScrollBarThemeImpl.getThumb(ScrollBarThemeImpl.java:400)
at com.sun.javafx.webkit.theme.ScrollBarThemeImpl.thumbPosition(ScrollBarThemeImpl.java:284)
at com.sun.javafx.webkit.theme.ScrollBarThemeImpl.getThumbPosition(ScrollBarThemeImpl.java:380)
at com.sun.webkit.WebPage.twkExecuteScript(Native Method)
at com.sun.webkit.WebPage.executeScript(WebPage.java:1427)
at javafx.scene.web.WebEngine.executeScript(WebEngine.java:948)
Я попытался добавить еще один чек, если в JavaScript: document.body.scrollHeight > document.body.clientHeight;
, но не решить проблему.
У кого-нибудь есть идеи, как избавиться от исключения (помимо подачи отчета об ошибке :)?
Этот момент, когда вы находите вопрос о SO с точно такой же проблемой, но не отвечаете ... Интересно, что это сработало до того, как я снова разместил свое приложение, чтобы он мог что-то сделать с компоновкой. –