SpringBoot启动后启动内嵌浏览器的方法
作者:小达哥的垃圾桶 发布时间:2023-02-27 17:42:53
标签:SpringBoot,内嵌浏览器
1、下载内嵌浏览器Jar包
下载地址:点击下载
2、项目下加入对应jar;然后右键:Add as Library...
3、添加启动项目后事件
效果:内嵌浏览器打开指定页面,全屏
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
* @author 鲁达
* createTime 2019-12-29 20:51
**/
@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
String url = "http://localhost:9028/open/index";
JFrame frame = new JFrame();
// 谷歌内核浏览器
Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
//禁用close功能
// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//隐藏任务栏图标
// frame.setType(JFrame.Type.UTILITY);
// //不显示标题栏,最大化,最小化,退出按钮
frame.setUndecorated(true);
//尺寸
// frame.setSize(500, 500);
//坐标
frame.setLocation(0, 0);
frame.add(view);
//全屏显示
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
// 是否显示
frame.setVisible(true);
//是否在屏幕最上层显示
frame.setAlwaysOnTop(true);
//加载地址
browser.loadURL(url);
// System.out.println(frame.getX());
// System.out.println(frame.getY());
// list.add(frame);
frame.addWindowListener(new WindowAdapter() {
// 窗口关闭时间监听
@Override
public void windowClosing(WindowEvent e){
System.out.println("窗口关闭...");
}
});
}
}
4、然后在ide 的run--->VM Options里加上一句-Djava.awt.headless=false
解决问题:java.awt.HeadlessException运行时异常
5、pom.xml文件添加依赖
解决问题:打包找不到依赖的问题
<!--内嵌浏览器-->
<dependency>
<groupId>jxbrowser-6.14</groupId>
<artifactId>jxbrowser-6.14</artifactId>
<version>6.14</version>
<scope>system</scope>
<systemPath>${project.basedir}\src\main\resources\lib\jxbrowser-6.14.jar</systemPath>
</dependency>
<dependency>
<groupId>jxbrowser-win32-6.14</groupId>
<artifactId>jxbrowser-win32-6.14</artifactId>
<version>6.14</version>
<scope>system</scope>
<systemPath>${project.basedir}\src\main\resources\lib\jxbrowser-win32-6.14.jar</systemPath>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
来源:https://blog.csdn.net/qq_31122833/article/details/103758203


猜你喜欢
- 通过shift+shift可以调出搜索窗口或者ctrl+n但是,如果想搜索jdk中的类,只是在搜索栏中是无法搜出来的需要勾选 红框内的选项没
- 前言:2022年Java将有什么新的特性和改进,我相信很多Java开发者都想知道。结合Java语言架构师布莱恩·格茨(
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- 这是一篇关于LIstView实现动态数据渲染的文章! 首先我们讲讲数据是如何来规划的 一般情况下我们有两种规划方案前提比如我们数据
- 背景知识Fluent Interface是一种通过连续的方法调用以完成特定逻辑处理的API实现方式,在代码中引入Fluent Interfa
- 简介Arthas 是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JV
- 环境:Spring5.3.12.RELEASE。Spring 3引入了一个core.onvert包,提供一个通用类型转换系统。系统定义了一个
- 一、实战-内存溢出堆内存溢出栈内存溢出方法区溢出直接内存溢出二、实战-堆内存溢出演示堆内存溢出代码,并且定位问题总结堆内存溢出的场景与解决方
- 目录一 前言二 解决方法三 常见的错误案例分析1.错误:ERR_UNKNOWN_URL_SCHEME2.实现UC、华为浏览器处理的效果——&
- 1.狂妄的WPF相对传统的Windows图形编程,需要做很多复杂的工作,引用许多不同的API。例如:WinForm(带控件表单)、GDI+(
- SpringBoot默认的页面映射路径(即模板文件存放的位置)为“classpath:/templates/*.html”。静态文件路径为“
- drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如Men
- 微信支付现在已经变得越来越流行了,随之也出现了很多以可以快速接入微信支付为噱头的产品,不过方便之余也使得我们做东西慢慢依赖第三方,丧失了独立
- java遍历json字符串,取得相应KV值时,各种麻烦,比如将json中的list取出来转为JSONArray,再将list中的object
- Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。Field 成员变量的介
- 本文实例分析了c#对象初始化顺序。分享给大家供大家参考。具体如下:using System;using System.Collections
- 在源代码中设置断点,然后进行点击调试若要启用反汇编窗口,请在工具>选项(或工具> 选项>调试下,选择启用地址级调试。若要在
- 首先微信公众号开发网页授权登录使用环境:开发工具:eclipse;服务器:tomcat8,开发语言:JAVA。我写的网页授权登录时用开发者模
- TextView加载字体包在 Android 中,若需要使得某个TextView加载字体包,使用以下方式即可: Typeface typeF
- springboot项目启动,初始化方法加载参数今天我看到项目中用到了 @PostConstruct 这个注解,之前没看到过,特地查了一下,