我已经在JavaFx中使用一个显示整个对话的WebView进行了对话阶段。我想从最新消息的底部开始显示它,因此我使用了“执行脚本”功能:
public void initialize() throws SQLException
{
buildText();
conversationText.getEngine().loadContent(text1);
conversationText.getEngine().executeScript("window.scrollTo(0, document.body.scrollHeight);");
conversationText.getEngine().setUserStyleSheetLocation(getClass().getResource("/html/style.css").toExternalForm());
}
我在initialize()void中编写了此函数,但它不起作用,当我打开对话时,它从最旧的消息所在的顶部向我显示所有内容:
但是有趣的是,当我使用此方法与一个名为“脚本”的按钮相连的空隙时,它可以正常工作
public void script()
{
conversationText.getEngine().executeScript("window.scrollTo(0, document.body.scrollHeight);");
}
当我按下此按钮时,它会滚动到底部:
有什么办法可以在初始化void中做到这一点?我尝试了很多方法,例如将按钮方法script()插入Initialize,但是我注意到,如果我使用功能webengine.loadcontent(),它总是从顶部显示我的全部。 我想从一开始就向用户显示最新消息,而不是在按下按钮之后。