等待放假,闲来无事,做个内嵌浏览器的Java桌面应用,用到了dj-nativeswing
是个半成品,只是能显示页面,没有写注释,大家凑合看看吧
多年不发帖,忘记怎么上传附件了
使用的jar包:
dj-nativeswing-swt-core.jar
dj-nativeswing-swt.jar
dj-nativeswing.jar
jna-4.0.0.jar
jna_WindowUtils.jar
MozillaInterfaces-1.8.1.3.jar
org.eclipse.swt.win32.win32.x86_64-4.3.jar
由于开发环境是64位的,但是mvnrepository上只有32位的jar,所以下载了dj-nativeswing的源码,自己编译的
package com.browser;
import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import com.browser.components.MainWndFrame;
import javax.swing.*;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
public class Assistant {
public static void main(String[] args) {
String u = "http://www.baidu.com/";
String t = "test";
String propFile = System.getProperty("user.dir") + File.separator + "assistant.properties";
try (
InputStream in = new BufferedInputStream(new FileInputStream(propFile))
) {
Properties p = new Properties();
p.load(in);
u = p.getProperty("assistant.url", u);
t = p.getProperty("assistant.title", t);
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
}
UIUtils.setPreferredLookAndFeel();
NativeInterface.open();
String title = t;
String url = u;
SwingUtilities.invokeLater(() -> {
try {
new MainWndFrame(title, url);
} catch (Exception e) {
e.printStackTrace();
}
});
NativeInterface.runEventPump();
}
}
package com.browser.components;
import javax.swing.*;
import java.awt.*;
public class MainWndFrame extends JFrame {
private MainWndFrame() {
}
public MainWndFrame(String title, String url) {
setTitle(title);
Container c = getContentPane();
c.setLayout(new GridLayout(1, 2));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
setSize(1200, 900);
setLocationRelativeTo(getOwner());
BrowserPanel browserPanel = new BrowserPanel();
browserPanel.load(url);
c.add(browserPanel, 0);
SettingPanel settingPanel = new SettingPanel(browserPanel);
c.add(settingPanel, 1);
}
}
package com.browser.components;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;
import javax.swing.*;
import java.awt.*;
public class BrowserPanel extends JPanel {
private JWebBrowser webBrowser;
public BrowserPanel() {
super(new BorderLayout());
webBrowser = new JWebBrowser();
webBrowser.setButtonBarVisible(false);
webBrowser.setMenuBarVisible(false);
webBrowser.setBarsVisible(false);
webBrowser.setStatusBarVisible(false);
add(webBrowser, BorderLayout.CENTER);
}
public void load(String url) {
webBrowser.navigate(url);
}
public JWebBrowser getWebBrowser() {
return webBrowser;
}
}
package com.browser.components;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;
import javax.swing.*;
import java.awt.*;
public class SettingPanel extends JPanel {
private JWebBrowser webBrowser;
private JTextArea browserInfo;
private SettingPanel() {
}
public SettingPanel(BrowserPanel browserPanel) {
super(new GridLayout(2, 1));
setSize(300, 500);
this.webBrowser = browserPanel.getWebBrowser();
Button enter = new Button();
enter.setLabel("Press Me!");
enter.addActionListener(e -> analysisBrowser());
add(enter, 0);
browserInfo = new JTextArea();
browserInfo.setLineWrap(true);
JScrollPane scroll = new JScrollPane(browserInfo);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
add(scroll, 1);
}
private void analysisBrowser() {
StringBuilder sb = new StringBuilder();
sb.append(webBrowser.getBrowserType()).append("\n");
sb.append(webBrowser.getHTMLContent());
browserInfo.setText(sb.toString());
}
}
分享到:
相关推荐
java 内嵌浏览器 DJNativeSwing,可实现内嵌浏览器,提高用户体验。
本代码J2SE代码,采用swt编程,实现内嵌浏览器,下载后找到项目中的两个类中的main运行即可。由于IE和Chrome内核不一样,所以采用jar包不一样,其中Chrome使用的jxbrowser,该项目中的jxbrowser已破解,放心使用。
Java内嵌浏览器是一种技术,允许Java应用程序在内部展示网页内容,而无需依赖外部浏览器。Eclipse SWT(Standard Widget Toolkit)是IBM开发的一个开源GUI库,它为Java提供了与本机操作系统更加紧密集成的用户界面...
Java内嵌浏览器技术是将网页内容在Java应用程序中展示的一种方式,这在处理与Web相关的功能或者需要在桌面应用中嵌入网页时非常有用。在这个场景中,DJNativeSwing和SWT(标准窗口工具包)是两个关键的库,它们帮助...
Java内嵌浏览器JxBrowser是一款强大的工具,它允许开发者在Java应用程序中集成Web浏览器功能,其内核基于Chromium,因此能良好地兼容大部分基于现代Web标准的前端框架,如React、Vue、Angular等。本教程将深入讲解...
jxbrowser 是一个非常成熟的 java 内嵌浏览器。使用的是 chrome 内核。但是这个并不免费。 尽量不去破坏源代码的情况去实施破解工作。 声明: 仅仅供学习使用,如商用请购买,本人不负责任何版权问题。
DJNativeSwing.jar,DJNativeSwing-SWT.jar,swt(Mac用.jar,swt(Window.jar 可解决问题:1.报错信息为缺少swt-cocoa-4335.dll和swt-cocoa.dll文件
在Java中实现内嵌浏览器,通常会借助第三方库,如DJNativeSwing-SWT,这个库允许Java Swing应用使用操作系统原生的Web浏览器引擎。 DJNativeSwing是一个强大的库,它允许Java应用利用Java SWT(标准窗口工具包)的...
在本示例中,开发者可能使用了DJnative-SWT提供的API来创建一个Swing组件,该组件能够内嵌WebKit浏览器引擎。这通常涉及到以下几个步骤: 1. **引入依赖**:首先,你需要在项目中引入DJnative-SWT和SWT的相关库,...
Java实现内置浏览器是一种技术实践,它允许开发者在Java应用程序中集成一个Web浏览器组件,使得用户可以在应用程序内部浏览网页,提供类似桌面应用的体验。这种方式通常使用JavaFX或Swing库来构建用户界面,并通过...
在Java中实现内嵌浏览器,我们可以利用Eclipse SWT(Standard Widget Toolkit)库中的`Browser`类。以下是一个关于如何使用SWT创建内嵌浏览器的详细说明: 1. **引入依赖**: 首先,你需要在项目中引入SWT库。对于...
Java内嵌浏览器是一种在Java应用程序中集成Web浏览功能的技术,使得用户可以在不离开主应用界面的情况下访问和交互网页。在给定的标题“漂亮的java嵌套浏览器IE,chrome”中,我们可以看出这是关于一个Java库,它...
Java嵌入谷歌内核简单浏览器是一种技术实现,它允许开发者在Java应用程序中集成谷歌的Chromium Embedded Framework(CEF),从而创建具有现代Web浏览功能的应用。CEF是一个开源项目,它为各种编程语言提供了一个轻量...
Java嵌入浏览器技术是将一个完整的网页浏览功能集成到Java应用程序中的方法,使得开发者可以在Java应用内部展示网页、实现Web应用交互。JxBrowser是一款专为此目的设计的库,它提供了一个API,允许Java开发者轻松地...
在Android应用开发中,内嵌浏览器(In-App Browser)是一种常见的功能,它允许用户在应用程序内部浏览网页,而无需跳转到外部浏览器。本文将详细介绍Android中的内嵌浏览器实现,特别是基于WappBrowser的实践。 ...
尽管SWING本身并不直接支持内嵌浏览器,但可以通过JavaFX或第三方库如JWebPane来实现。JavaFX提供了一个WebView组件,可以嵌入HTML5内容,但需要Java 8或更高版本。JWebPane是早期Java 6中的一个实验性API,但它在...
本文将深入探讨如何使用Java内嵌Chrome浏览器以及如何在Web项目中实现MAC地址的获取。 首先,Java内嵌Chrome浏览器通常借助于开源库如JxBrowser或BrowserSwing。JxBrowser是一个强大的Java库,允许开发者在Java应用...
标签"内嵌浏览器"表明这个项目专注于提供一个内部集成的浏览器组件,"java"表示它是基于Java语言实现的,"jxbrowser"则是该项目的核心库名,专门用于Java平台的内嵌式浏览器解决方案。 在压缩包子文件的文件名称...