检测到Javafx webview'杰出的资源锁定'信息

时间:2014-05-26 14:10:22

标签: swing webview javafx

我正在使用javafx webview在jpanel中加载本地html页面。执行代码会给我以下消息:

检测到未完成的资源锁:D3D Vram池:使用了13,810,710(5.1%),管理了13,810,710(5.1%),总计268,435,456 管理的资源总数为14 平均资源年龄为0.8帧 最大支持年龄的0资源(0.000000)
3个资源标记为永久性(21.400000)
3资源有不匹配的锁(21.400000)
锁定3个资源(21.400000)
5个资源包含有趣的数据(35.700000)

我是java的新手,我不明白为什么会生成这条消息以及如何解决它(我的html页面工作得很好,摆动代码也是如此 - 给了我想要的结果)。我试过了在网上查找但无法找到解决方案。

如果需要任何其他信息,请告诉我。

修改

我正在尝试开发视频注释工具。要附加到视频的标签及其处理都是在java swing中完成的。视频本身是我在javafx webview中加载的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);
        }


}



感谢您的帮助!

0 个答案:

没有答案