等待放假,闲来无事,做个内嵌浏览器的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,可实现内嵌浏览器,提高用户体验。
java实现内嵌浏览器,支持IE、Chrome。项目已经正常运行,请放心使用。
Java将HTML代码转图片 java内嵌浏览器需要用到的包 DJNativeSwing.jar DJNativeSwing-SWT.jar 以及32位SWT.jar
Java内嵌浏览器eclipse.swt插件版 swt-3.5M4-win32-win32-x86 eclipse.swt 源码,jar包 demo eclipse工程实例
java内嵌浏览器源码
jxbrowser 是一个非常成熟的 java 内嵌浏览器。使用的是 chrome 内核。但是这个并不免费。 尽量不去破坏源代码的情况去实施破解工作。 声明: 仅仅供学习使用,如商用请购买,本人不负责任何版权问题。
DJNativeSwing.jar,DJNativeSwing-SWT.jar,swt(Mac用.jar,swt(Window.jar 可解决问题:1.报错信息为缺少swt-cocoa-4335.dll和swt-cocoa.dll文件
实现java简单内嵌浏览器,jxbrowser为谷歌内核,兼容大部分前端框架,源码亲测好用(希望大家支持正版 ,不要商业使用)
这是目前最好的java嵌入浏览器的解决办法,做了个demo,放出整个工程,其中包含了所有平台的资源包和license,希望能帮助到你
用DJnative-swt和swt包开发的调用本地浏览器和webkit浏览器的示例
本来我上传的资源都是0分下载。怎么都最少要2分了?这个最少分要选择2分
做java客户端时,为了显示更好的显示效果,可以用内嵌浏览器,此包里有相关例子和jar包,api等!
Java内嵌Chrome浏览器,并实现web项目获取MAC地址,内含Ant打包代码,可以把程序打包到jar目录,直接用cmd文件运行
DJNativeSwing-SWT组件-Java GUI中内嵌浏览器相关JAR包
JAVA-CEF 是一个可以将浏览器功能(页面渲染,JS 执行)嵌入到其他应用程序的框架,附件中一个可运行实例。
内嵌浏览器,java实现,Chrome和IE,功能强大可以直接使用
SWT Browser(内嵌浏览器)所需SWTResourceManager Jar包
本代码是基于java swt界面化所编写的java内嵌浏览器 可取代电脑上的浏览器 还是很好用 可以下载学习