一、jdk不匹配问题
修改jdk版本不成功:
1、注意环境变量是否更改
2、jdk路径已经更改成功但cmd打开输入Java -version还是原先版本:在PATH的那一溜里将把JAVA_HOME放到最前面去
3、idea修改jdk版本
IDEA修改JDK版本完整版
以及Modules中的Sources:
二、jxbrowser内嵌浏览器
下载了破解版,且非最新版本
内嵌后出现的问题:
1、如何内嵌:在BorderPane中内嵌了flowPane,将浏览器置于BorderPane中部,FlowPane放于上部用于在flowpane中加入按钮
2、浏览器打开问题:新打开一个网页就会弹出一个javaFX界面,在jxbrowser中有一个方法可以控制,链接:jxbrowser
可以用来处理弹出界面问题,但我的低版本中没有,只好重写方法:
browser.setPopupHandler(new PopupHandler() {
@Override
public PopupContainer handlePopup(PopupParams popupParams) {
browser.loadURL(popupParams.getURL());
return null;
}
});
重写后,确实不会再弹出新的javaFX界面了,但是是在原有的界面上展示,也就是覆盖之前的网页且没有返回按钮。
在此过程中,发现javaFX自带的webview也能实现内嵌浏览器功能,便狠狠抛弃了jxbrowser,并且使用tab完成了同一界面网页的显示,如下:
**
三、maven项目转变为springboot项目:
**
1、在pom.xml中添加,包括parent、dependency及build等
在依赖中需要有springBoot、mysql、mybatis-plus等,在此过程中发生了mysql的依赖导入失败的问题,它的版本爆红,但在maven仓库中确实有该版本,本地下载也是该版本,由于该原始项目是网上下载的代码,因此将之前本地自建的springBoot项目的pom文件复制导入了,成功运行但仍然不知道问题出现在哪里,可能是springboot依赖的版本?
2、使用Lombok
Lombok简介、使用、工作原理、优缺点
四,侧边栏功能(收藏、不感兴趣、稍后再看、历史记录等)实现
1、获取网页标题及网址
本项目通过tabPane进行网页的排布,因此获得当前tab中的内容便可实现,需要注意的是,需要在一个事件中获取,代码如下:
//设置一个按钮,点击后在label中展示网页标题,并打印出网址
bu3.setOnAction((evt)-> {
label1.setText(tp.getSelectionModel().getSelectedItem().getText());
//获取当前tab
Tab t = tp.getSelectionModel().getSelectedItem();
//获取tab中的浏览器
WebView view = (WebView) t.getContent();
WebEngine engine = view.getEngine();
System.out.println("网址" + engine.getLocation());
});
2、连接后端(SpringBoot框架)
Spring Boot中通过 SpringContextUtil 工具类获取容器中Bean对象
相关代码如下:
神奇的SpringContextUtil
建立一个utils文件夹,将代码文件放进去,使用时:
UserService userService = SpringContextUtil.getBean(UserService.class);
//之后便可正常使用方法等,例如:
userService.userAdd("小王");
在此过程中出现的问题:
在启动类里我写了重载start的方法和一个main方法,start里面调用了含有初始化getBean代码的文件,而在main方法里通过这个:
launch(LearningLogAppApplication.class,webView.class,args);
再次调用webView.class调用这个文件,因此算是调用了两次,所以出现了SpringContextUtil空指针异常的报错,去掉start方法后解决问题。
至此,基本框架已搭建完毕。