我已经使用 JavaFX HTMLEditor 组件创建了一个聊天,在发送消息后,编辑器不再集中,因为您按下了发送按钮,该按钮暂时处于焦点)。我想以某种方式聚焦编辑器,我已经在谷歌上搜索过但没有找到答案。
void editorWebViewRequestFocus()
{
final WebView view = (WebView) ((GridPane) ((HTMLEditorSkin) editor.getSkin()).getChildren().get( 0 )).getChildren().get( 2 );
Platform.runLater( () ->
{
view.fireEvent( new MouseEvent( MouseEvent.MOUSE_PRESSED, 100, 100, 200, 200, MouseButton.PRIMARY, 1, false, false, false, false,
false, false, false, false, false, false, null ) );
editor.requestFocus();
view.fireEvent( new MouseEvent( MouseEvent.MOUSE_RELEASED, 100, 100, 200, 200, MouseButton.PRIMARY, 1, false, false, false, false,
false, false, false, false, false, false, null ) );
} );
}
试试这个
WebView webView = (WebView) htmlEditor.lookup("WebView");
((HTMLBodyElementImpl) ((NodeListImpl) webView.getEngine().getDocument().getElementsByTagName("body")).item(0)).focus();
除了焦点之外,您还可以设置和获取文本等等