`

Java内嵌浏览器

    博客分类:
  • Java
 
阅读更多
等待放假,闲来无事,做个内嵌浏览器的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 内嵌浏览器 DJNativeSwing,可实现内嵌浏览器,提高用户体验。

    java内嵌浏览器

    本代码J2SE代码,采用swt编程,实现内嵌浏览器,下载后找到项目中的两个类中的main运行即可。由于IE和Chrome内核不一样,所以采用jar包不一样,其中Chrome使用的jxbrowser,该项目中的jxbrowser已破解,放心使用。

    Java内嵌浏览器eclipse.swt插件版

    Java内嵌浏览器是一种技术,允许Java应用程序在内部展示网页内容,而无需依赖外部浏览器。Eclipse SWT(Standard Widget Toolkit)是IBM开发的一个开源GUI库,它为Java提供了与本机操作系统更加紧密集成的用户界面...

    java内嵌浏览器DJNativeSwing的jar包 以及32位和64位的SWT

    Java内嵌浏览器技术是将网页内容在Java应用程序中展示的一种方式,这在处理与Web相关的功能或者需要在桌面应用中嵌入网页时非常有用。在这个场景中,DJNativeSwing和SWT(标准窗口工具包)是两个关键的库,它们帮助...

    java内嵌浏览器jxbrowser使用教程

    Java内嵌浏览器JxBrowser是一款强大的工具,它允许开发者在Java应用程序中集成Web浏览器功能,其内核基于Chromium,因此能良好地兼容大部分基于现代Web标准的前端框架,如React、Vue、Angular等。本教程将深入讲解...

    jxbrowser非常成熟的 java 内嵌浏览器

    jxbrowser 是一个非常成熟的 java 内嵌浏览器。使用的是 chrome 内核。但是这个并不免费。 尽量不去破坏源代码的情况去实施破解工作。 声明: 仅仅供学习使用,如商用请购买,本人不负责任何版权问题。

    java内嵌浏览器(代码文件),相关的依赖及jar包

    DJNativeSwing.jar,DJNativeSwing-SWT.jar,swt(Mac用.jar,swt(Window.jar 可解决问题:1.报错信息为缺少swt-cocoa-4335.dll和swt-cocoa.dll文件

    java swing 内嵌浏览器

    在Java中实现内嵌浏览器,通常会借助第三方库,如DJNativeSwing-SWT,这个库允许Java Swing应用使用操作系统原生的Web浏览器引擎。 DJNativeSwing是一个强大的库,它允许Java应用利用Java SWT(标准窗口工具包)的...

    Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)

    在本示例中,开发者可能使用了DJnative-SWT提供的API来创建一个Swing组件,该组件能够内嵌WebKit浏览器引擎。这通常涉及到以下几个步骤: 1. **引入依赖**:首先,你需要在项目中引入DJnative-SWT和SWT的相关库,...

    java实现内置浏览器

    Java实现内置浏览器是一种技术实践,它允许开发者在Java应用程序中集成一个Web浏览器组件,使得用户可以在应用程序内部浏览网页,提供类似桌面应用的体验。这种方式通常使用JavaFX或Swing库来构建用户界面,并通过...

    java内嵌浏览器源码.doc

    在Java中实现内嵌浏览器,我们可以利用Eclipse SWT(Standard Widget Toolkit)库中的`Browser`类。以下是一个关于如何使用SWT创建内嵌浏览器的详细说明: 1. **引入依赖**: 首先,你需要在项目中引入SWT库。对于...

    漂亮的java嵌套浏览器IE,chrome

    Java内嵌浏览器是一种在Java应用程序中集成Web浏览功能的技术,使得用户可以在不离开主应用界面的情况下访问和交互网页。在给定的标题“漂亮的java嵌套浏览器IE,chrome”中,我们可以看出这是关于一个Java库,它...

    Java嵌入谷歌内核简单浏览器

    Java嵌入谷歌内核简单浏览器是一种技术实现,它允许开发者在Java应用程序中集成谷歌的Chromium Embedded Framework(CEF),从而创建具有现代Web浏览功能的应用。CEF是一个开源项目,它为各种编程语言提供了一个轻量...

    java嵌入浏览器JxBrowser6.21

    Java嵌入浏览器技术是将一个完整的网页浏览功能集成到Java应用程序中的方法,使得开发者可以在Java应用内部展示网页、实现Web应用交互。JxBrowser是一款专为此目的设计的库,它提供了一个API,允许Java开发者轻松地...

    Android-一个App内嵌浏览器

    在Android应用开发中,内嵌浏览器(In-App Browser)是一种常见的功能,它允许用户在应用程序内部浏览网页,而无需跳转到外部浏览器。本文将详细介绍Android中的内嵌浏览器实现,特别是基于WappBrowser的实践。 ...

    在SWING、SWT中嵌入浏览器

    尽管SWING本身并不直接支持内嵌浏览器,但可以通过JavaFX或第三方库如JWebPane来实现。JavaFX提供了一个WebView组件,可以嵌入HTML5内容,但需要Java 8或更高版本。JWebPane是早期Java 6中的一个实验性API,但它在...

    Java内嵌Chrome浏览器 并实现web项目获取MAC地址

    本文将深入探讨如何使用Java内嵌Chrome浏览器以及如何在Web项目中实现MAC地址的获取。 首先,Java内嵌Chrome浏览器通常借助于开源库如JxBrowser或BrowserSwing。JxBrowser是一个强大的Java库,允许开发者在Java应用...

    Java嵌入谷歌内核简单浏览器跨平台

    标签"内嵌浏览器"表明这个项目专注于提供一个内部集成的浏览器组件,"java"表示它是基于Java语言实现的,"jxbrowser"则是该项目的核心库名,专门用于Java平台的内嵌式浏览器解决方案。 在压缩包子文件的文件名称...

Global site tag (gtag.js) - Google Analytics