新手怎么推广自己的店铺/深圳关键词优化
目录
- 概述
- 技术实现
- 涉及技术
- 功能编码
- 创建WebViewUtil工具类
- 构建WebEngine加载html页面
- 在pages.layout目录下引入前端文件
- 总结
概述
JavaFX是用于构建富互联网应用程序的Java库。使用JavaFX开发的应用程序可以在各种设备上运行,如台式计算机,手机,物联网设备,平板电脑等。最近为了巩固一下JavaFX学习成果,准备利用整个技术开发一个工具软件能够对字库进行裁剪,可以根据用户的设置自动生成精简字库,简化手动裁剪的麻烦。
技术实现
在JavaFX脚手架中集成WebView技术,可以引入Web前端技术,以增强项目的扩展性。
涉及技术
- JavaFX8中的WebView,jfoenix8
- html js css 基本的web技术
- java se
功能编码
创建WebViewUtil工具类
import com.mohamnag.fxwebview_debugger.DevToolsDebuggerServer;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebEvent;
import javafx.scene.web.WebView;/*** @author: Administrator* @date: 2021/03/13 23:36* @description:*/
public class WebViewUtil {private static WebViewUtil webViewUtil;public static WebViewUtil getInstance(){if(webViewUtil==null){webViewUtil = new WebViewUtil();}return webViewUtil;}public WebEngine webEngine;public WebEngine initCenterWebView(WebView centerWebView, String pageName) {//获取Engineif (webEngine==null){webEngine = centerWebView.getEngine();}try {DevToolsDebuggerServer.startDebugServer(webEngine.impl_getDebugger(), 51742);} catch (Exception e) {e.printStackTrace();}com.sun.javafx.webkit.WebConsoleListener.setDefaultListener(new com.sun.javafx.webkit.WebConsoleListener() {@Overridepublic void messageAdded(WebView webView, String message, int lineNumber, String sourceId) {System.out.println("Console: " + message + " [" + sourceId + ":" + lineNumber + "] ");}});webEngine.setJavaScriptEnabled(true);//获取当前Java版本System.out.println("Java Version:" + System.getProperty("java.runtime.version"));//获取当前JavaFx版本System.out.println("JavaFXersion:" + System.getProperty("javafx.runtime.version"));//获取当前系统版本System.out.println("OS:" + System.getProperty("os.name") + "," + System.getProperty("os.arch"));//获取WebKit内核版本System.out.println("User Agent:" + centerWebView.getEngine().getUserAgent());//获取页面路径String mainUrl = getClass().getResource("/pages/layout/"+pageName).toExternalForm();//获取页面alert弹窗和重新加载页面centerWebView.getEngine().setOnAlert((WebEvent<String> wEvent) -> {//打印页面弹窗System.out.println("Alert Event - Message: " + wEvent.getData());if (wEvent.getData().equals("Awesome123123")) {//重新加载页面webEngine.load(getClass().getResource("/pages/layout/test.html").toExternalForm());}if (wEvent.getData().equals("123")) {webEngine.load(getClass().getResource("/pages/layout/demo.html").toExternalForm());}});//初始化webEngine.load(mainUrl);return webEngine;}
}
构建WebEngine加载html页面
WebViewUtil webViewUtil = WebViewUtil.getInstance();webEngine = webViewUtil.initCenterWebView(centerWebView, R.menuviewUrl1);
在pages.layout目录下引入前端文件
总结
以上已经完成对webView组件的引入,此时的javaFX应用相当于一个嵌入式浏览器,我们可操作
系统目录等操作弥补使用浏览器的不足。