java内嵌浏览器的几种方式

article/2025/10/3 2:09:13

最近遇到一个特殊的项目需求,就是需要在一个屏幕上打开多个窗口大小不同的浏览器、并且显示不同的页面。因为是需要浏览器无边框的,在网上找了好多资料,发现前端好像很难实现。所以就打算采用java后台内嵌浏览器,然后实现无边框的效果。

以下几种就是笔者采用的几种内嵌浏览器方式:

1.Swing + JXBrowser

jxBrowser是收费的,我在网上找的破解版

  • jxbrowser-6.14.jar
  • jxbrowser-win32-6.14.jar

新建一个springboot项目,项目右键新建一个lib模板把上面两个jar包拷贝进去

 

选中两个jar包鼠标右键添加到library

 

创建main方法

import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;/****** @author tjw* @versuion 1.0* @date 2018/12/13 17:16*/
public class Test {public static void main(String[] args) {String url = "http://www.baidu.com";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() {// 窗口关闭时间监听@Overridepublic void windowClosing(WindowEvent e){System.out.println("窗口关闭...");}});}
}

 

运行main方法显示以下页面

 

需要注意的是 jxbrowser实例只能存在一个,当再次运行main方法是将会报以下错:

 

这是因为使用的破解版,如果需要更多的支持可以购买正版:https://jxbrowser.support.teamdev.com/support/home

 

2.使用DJNativeSwing,需要以下三个jar包

  • djnativeswing.jar
  • djnativeswing-swt.jar
  • org.eclipse.swt.win32.win32.x86_64-4.3.jar

代码:

import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;import javax.swing.*;import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserAdapter;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserEvent;public class Browser2 extends JPanel {public Browser2() {super(new BorderLayout());JPanel webBrowserPanel = new JPanel(new BorderLayout());webBrowserPanel.setBorder(BorderFactory.createTitledBorder("Native Web Browser component"));final JWebBrowser webBrowser = new JWebBrowser();webBrowser.navigate("http://www.baidu.com");webBrowserPanel.add(webBrowser, BorderLayout.CENTER);add(webBrowserPanel, BorderLayout.CENTER);// Create an additional bar allowing to show/hide the menu bar of the web browser.JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 4));JCheckBox menuBarCheckBox = new JCheckBox("Menu Bar", webBrowser.isMenuBarVisible());menuBarCheckBox.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {webBrowser.setMenuBarVisible(e.getStateChange() == ItemEvent.SELECTED);}});buttonPanel.add(menuBarCheckBox);add(buttonPanel, BorderLayout.SOUTH);}/* Standard main method to try that test as a standalone application. */public static void main(String[] args) {UIUtils.setPreferredLookAndFeel();NativeInterface.open();SwingUtilities.invokeLater(new Runnable() {public void run() {JFrame frame = new JFrame("DJ Native Swing Test");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(new Browser2(), BorderLayout.CENTER);//不显示标题栏,最大化,最小化,退出按钮frame.setUndecorated(true);frame.setSize(800, 600);frame.setLocationByPlatform(true);frame.setVisible(true);}});NativeInterface.runEventPump();}
}

运行项目:

 

3.使用SWT (org.eclipse.swt.SWT相关依赖)需要以下jar包

  • org.eclipse.swt.win32.win32.x86_64-4.3.jar

代码:


import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.*;/****** @author tjw* @versuion 1.0* @date 2018/12/13 17:59*/
public class SWTtest {public static void main(String args[]){Display display=new Display();Shell shell=new Shell(display);shell.setText("SWT Browser Test");shell.setSize(800,600);final Text text=new Text(shell,SWT.BORDER);text.setBounds(110,5,560,25);Button button=new Button(shell,SWT.BORDER);button.setBounds(680,5,100,25);button.setText("go");Label label=new Label(shell,SWT.LEFT);label.setText("输入网址 :");label.setBounds(5, 5, 100, 25);final Browser browser=new Browser(shell,SWT.FILL);browser.setBounds(5,30,780,560);button.addListener(SWT.Selection, new Listener(){public void handleEvent(Event event){String input=text.getText().trim();if(input.length()==0)return;if(!input.startsWith("http://")){input="http://"+input;text.setText(input);}browser.setUrl(input);}});shell.open();while (!shell.isDisposed()) {if (!display.readAndDispatch())display.sleep();}display.dispose();}
}

 

 

 

以上三种就是java内嵌浏览器的实现方式,三种对带有视频的网页支持不是很友好,播放不出视频,不过第一种jxbrowser购买了许可 即可正常使用视频播放功能,他对前端的页面渲染都相对较稳定,其他两种对有些页面可能渲染不出来。笔者项目前端用的是vue,所以用的是第一种内嵌浏览器方式。项目源码已上传到github,项目中的jar包都在项目的lib目录里,欢迎朋友们下载。

源码地址:https://github.com/tanjiawei1199/javaBrowser

 

 

 

 


http://chatgpt.dhexx.cn/article/EUSruoWr.shtml

相关文章

winform内嵌浏览器的2种实现方式

可使用WebBrowser或axWebBrowser实现winform窗体内嵌浏览器 一 使用axWebBrowser打开浏览器 1.新建个winform项目 2.添加axWebBrowser控件 打开工具箱,右键空白处,点击选择项 选择COM组件,勾上Microsoft Web Browser 把控件拉拽到winform窗体上 3.使用axWebBrowser打开浏览器 …

云表中表单配置内嵌浏览器

给大家分享一个在表单里也能嵌入网页的一个功能,云表的内嵌浏览器 1.首先我们先添加一个云表内嵌浏览器,在模板设计的右边点击表格面板点击下拉后可以先将浏览器,这个浏览器是需要一整个表格的 2.添加好浏览器后,我们表单设置…

Android开发实用小技巧九——内嵌WebView的使用(内置浏览器)

文章目录 前言一、效果展示二、代码1.样式布局2.活动页面 总结 前言 内嵌WebView的使用&#xff08;内置浏览器&#xff09;。 一、效果展示 二、代码 1.样式布局 res/layout/activity_browser.xml &#xff1a; <?xml version"1.0" encoding"utf-8"…

springboot 调用Jxbrowser内嵌浏览器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Jxbrowser是什么&#xff1f;二、使用步骤1.下载jar包一、在jxbrowser的启动类中加入如下代码&#xff1a;二、在resources目录下新建META-INF/teamdev.lic…

javaFX实现桌面应用程序内嵌浏览器(一、框架建设)

一、jdk不匹配问题 修改jdk版本不成功&#xff1a; 1、注意环境变量是否更改 2、jdk路径已经更改成功但cmd打开输入Java -version还是原先版本&#xff1a;在PATH的那一溜里将把JAVA_HOME放到最前面去 3、idea修改jdk版本 IDEA修改JDK版本完整版 以及Modules中的Sources&#…

IDM下载工具

安装的时候一直next就好了&#xff0c;尽量将idm安装在c盘里面 下面这个链接时绿色版&#xff0c;不需要安装 然后用idm免注册脚本运行一下 下载链接&#xff08;传不上来&#xff0c;发邮箱我给你传一份&#xff0c;这个阿里云盘有点low啊&#xff09; 尽量在关闭360等工具运…

idm 的使用

一:首先在chrome中添加IDM插件: http://www.internetdownloadmanager.com/ 首先进入IDM官网-->Support-->FAQ,点击BROWSER INTEGRATION QUESTIONS 然后点击第8条: 然后点击链接安装Chrome插件: 再然后, 启用该插件. 二、再下载IDMv.6.333 链接&#xff1a;https://do…

IDM的介绍、下载、注册激活使用教程详解 V6.38.2021

IDM是“Internet Download Manager”的简称&#xff0c;意思是“互联网下载管理器”&#xff0c;既是一类软件的统称&#xff0c;也专指一个非常知名的互联网下载器&#xff0c;这个软件的名字就叫IDM&#xff0c;被誉为地表最强下载器&#xff0c;屌丝救星&#xff0c;小电影神…

Internet Download Manager6.41提速下载器安装下载教程

很多人都知道Internet Download Manager(以下简称IDM)是一款非常优秀的下载提速软件。它功能强大&#xff0c;几乎能下载网页中的所有数据&#xff08;包括视频、音频、图片等&#xff09;&#xff0c;且适用于现在市面上几乎所有的浏览器&#xff0c;非常受大家欢迎。 Intern…

大神论坛 逆向分析 Internet Download Manager 序列号算法 附IDM注册机完整源码

1. 前言 idm version : 6.38 Build 23 2.算法逆向 IDM的序列号验证函数定位在&#xff1a; 下面是在IDA下的代码分析: .text:00510010 push ebp .text:00510011 lea ebp, [esp-1FCh] .text:00510018 sub esp, …

IDM使用介绍篇

IDM作为一款超级强大的下载工具&#xff0c;是很多人的首选&#xff0c;尤其是在当pandownload被封之后&#xff0c;找不到合适的替代下载工具&#xff0c;此时请把目光转移到IDM上&#xff0c;这款软件你值得拥有。所以接下来将介绍这款软件的使用。 1、下载地址 这里我提供了…

Internet Download Manager v6.41.3中文特别版IDM下载器免费下载

Internet Download Manager v6.41.3中文特别版(IDM)&#xff0c;全球最佳下载利器。Internet Download Manager 是一款Windows 平台功能强大的多线程下载工具&#xff0c;国外非常受欢迎。支持断点续传&#xff0c;支持嗅探视频音频&#xff0c;接管所有浏览器&#xff0c;具有…

IDM(Internet Download Manager)最新一款 功能最全/电脑必备的下载器激活序列号版

近些年移动互联网兴起&#xff0c;人手一部智能手机。人们花在PC上的时间越来越短&#xff0c;关注手机的时间越来越长。 4G、5G移动网络和云服务的飞速发展&#xff0c;网速越来越快&#xff0c;人们更愿意在线刷剧&#xff0c;在线存储。很多资源再也不需要存在本地占用磁盘空…

IDM6.39最新版补丁新增功能介绍

IDM6.39是一款转为安卓用户研发的下载管理器应用程序&#xff08;极速下载站提供&#xff09;&#xff0c;IDM Plus&#xff0c;下载速度最多可以提高620倍。包含的一组功能使其成为完美的下载管理器。IDM 支持多种文件格式&#xff0c;以确保您可以下载任何格式的任何文件。ID…

Internet Download Manager(V6.37版本IDM)免费序列号密钥激活版使用过程中的一些常见问题

在众多电脑必备软件中&#xff0c;下载软件 IDM 的不可替代性十分明显&#xff0c;无论是在文件下载、视频下载&#xff0c;还是网盘加速&#xff0c;IDM 都扮演着重要的角色。 1、Internet Download Manager的续传功能可以恢复因为断线、网络问题、计算机当机甚至无预警的停电…

Internet Download Manager用假的序列号注册,IDM将退出

下载下来直接双击绿化按钮即可. 软件链接 : https://pan.baidu.com/s/1agK3cLtjJzXcGEgsuv5mVQ 提取码: ckm7

IDM下载器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 安装IDM教程并输入序列号 下载IDM&#xff0c;输入序列号 例如&#xff1a;先下载IDM再输入序列号 提示&#xff1a;本文参考了别人的博客&#xff0c;参考的博客连接放在…

idm2021中文版序列号加速下载百度云网盘大文件教程

自从不限速度盘下载工具Pandownload被封杀后&#xff0c;有些网友纷纷表示&#xff1a;幸好我们还有Internet Download Manager&#xff08;IDM&#xff09; 但是&#xff0c;对于很多小伙伴来说&#xff0c;初次听到这个名词时都是一脸懵逼——啥是IDM&#xff1f; 今天&…

IDM永久版下载神器如何正确使用呢?超详细教程和序列号

大家从网上下载资源时还在使用浏览器自带的下载方式吗&#xff1f;小编觉得用这种方式下载的话速度会比较慢&#xff0c;无法完全利用上自己的带宽。所以小编给大家安利一款下载神器——Internet Download Manger&#xff08;IDM&#xff09;&#xff0c;这是大多数人公认的下载…

IDM 6.4.1逆向分析笔记

环境准备 安装过程不做说明 1. x64dbg 官网地址&#xff1a;https://x64dbg.com/ 2. 火绒剑 官网地址&#xff1a;https://www.huorong.cn/ &#xff13;.SPY 下载地址&#xff1a;https://github.com/westoncampbell/SpyPlusPlus 有安装了Visual Studio2013-2022的在工…