Swing javafxwebview';检测到未完成的资源锁';消息
我使用JavaFXWebView在jpanel中加载本地html页面。执行代码会给我以下消息:Swing javafxwebview';检测到未完成的资源锁';消息,swing,webview,javafx,Swing,Webview,Javafx,我使用JavaFXWebView在jpanel中加载本地html页面。执行代码会给我以下消息: 检测到未完成的资源锁:D3D Vram池:13810710已使用(5.1%),13810710已管理(5.1%),268435456总计 14管理的总资源 平均资源使用年限为0.8帧 0个资源处于支持的最大年龄(0.000000) 3标记为永久的资源(21.400000) 3个资源的锁不匹配(21.400000) 3资源锁定(21.400000) 5资源包含有趣的数据(35.700000) 我是jav
检测到未完成的资源锁:D3D Vram池:13810710已使用(5.1%),13810710已管理(5.1%),268435456总计
14管理的总资源
平均资源使用年限为0.8帧
0个资源处于支持的最大年龄(0.000000)
3标记为永久的资源(21.400000)
3个资源的锁不匹配(21.400000)
3资源锁定(21.400000)
5资源包含有趣的数据(35.700000)
我是java新手,我不明白为什么会生成此消息以及如何解决它(我的html页面工作正常,swing代码也工作正常,这给了我想要的结果)。我尝试在线查找,但找不到解决方案
如果需要其他信息,请告诉我
编辑: 我正在尝试开发一个视频注释工具。要附加到视频的标记及其处理都是在JavaSwing中完成的。视频本身是我在JavaFXWebView中加载的html页面的一部分。我在上面放了一块半透明的画布,我用它来注册鼠标点击事件,以便在特定时间将标签附加到视频上的特定内容。视频标签下面是另一个画布,用作时间轴(在适当的时间显示附加的标签)。这是代码的基本目标 下面是我添加jfxpanel的代码:
package codingAnnotations;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebEvent;
import javafx.scene.web.WebView;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class JFXContainerPanel extends JPanel {
private final JFXPanel WebViewContainer;
private final JFXPanel TimeLineContainer;
public JFXContainerPanel(){
WebViewContainer = new JFXPanel();
TimeLineContainer = new JFXPanel();
add(WebViewContainer);
Platform.runLater(new Runnable() {
@Override
public void run() {
initFX(WebViewContainer);
}
});
}
private static void initFX(final JFXPanel fxPanel) {
Group group = new Group();
Scene scene = new Scene(group);
WebView webView = new WebView();
group.getChildren().add(webView);
webView.setMinSize(500, 500);
webView.setMaxSize(800, 600);
final String html = "res/VideoCanvas.html";
final java.net.URI uri = java.nio.file.Paths.get(html).toAbsolutePath().toUri();
System.out.println(uri.toString());
WebEngine webEngine = webView.getEngine();
webEngine.load(uri.toString());
webEngine.setOnAlert(new EventHandler<WebEvent<String>>(){
@Override
public void handle(WebEvent<String> arg0) {
String value = arg0.toString().substring(10, arg0.toString().length() - 1);
System.out.println(value);
}
});
fxPanel.setScene(scene);
}
}
包装编码说明;
导入java.io.File;
导入java.net.MalformedURLException;
导入java.net.URL;
导入javafx.application.Platform;
导入javafx.embed.swing.JFXPanel;
导入javafx.event.EventHandler;
导入javafx.scene.Group;
导入javafx.scene.scene;
导入javafx.scene.web.WebEngine;
导入javafx.scene.web.WebEvent;
导入javafx.scene.web.WebView;
导入javax.swing.JPanel;
@抑制警告(“串行”)
公共类JFXContainerPanel扩展了JPanel{
私有最终JFXPanel WebViewContainer;
私人最终JFXPanel TimeLineContainer;
公共JFXContainerPanel(){
WebViewContainer=新的JFXPanel();
TimeLineContainer=新的JFXPanel();
添加(WebViewContainer);
Platform.runLater(新的Runnable(){
@凌驾
公开募捐{
initFX(WebViewContainer);
}
});
}
私有静态void initFX(最终JFXPanel fxPanel){
组=新组();
场景=新场景(组);
WebView WebView=新建WebView();
group.getChildren().add(webView);
setMinSize(500500);
setMaxSize(800600);
最终字符串html=“res/VideoCanvas.html”;
final java.net.URI=java.nio.file.path.get(html.toabsolutionPath().toUri();
System.out.println(uri.toString());
WebEngine WebEngine=webView.getEngine();
load(uri.toString());
setOnAlert(新的EventHandler(){
@凌驾
公共无效句柄(WebEvent arg0){
字符串值=arg0.toString().substring(10,arg0.toString().length()-1);
系统输出打印项次(值);
}
});
fxPanel.setScene(场景);
}
}
谢谢您的帮助 你能发布你正在使用的代码片段吗?@ItachiUchiha-我不确定应该发布什么作为代码片段。我应该在加载jfxpanel的地方发布代码吗?我确实知道,当我在webview中加载本地html文件时,我就开始看到这条消息,而当我使用google.com之类的东西时,我从来没有看到过这条消息。也许我在html文件中所做的事情导致了这种情况?我编辑了我的帖子,简要描述了我在html文件中所做的事情。请让我知道我能提供什么其他信息。谢谢。@ItachiUchiha-我刚刚在加载jfxpanel的地方添加了代码。这可能是我在webview中加载html文件的方式吗?谢谢。我相信这是一个javaFx错误。你能发布你的VideoCanvas.html代码吗?