Создание веб-браузера на java

В Java есть несколько библиотек, которые позволяют отображать веб-страницу, но большинство из них были сняты с производства несколько лет назад. В этой статье мы увидим, как создать браузер и отображать содержимое веб-сайта.

Вы можете отобразить веб-страницу тремя способами:
  • JEditorPane: включен в JRE, но отображает только простые HTML-страницы.
  • JWebBrowser: интегрирует браузер Internet Explorer.
  • JxBrowser: интегрирует браузер Chromium, это наиболее эффективный способ, поскольку он позволяет отображать современные веб-страницы, разработанные с помощью HTML5/CSS3, JavaScript, Siverlight... Единственный недостаток в том, что он платный.

Класс JEditorPane

JEditorPane позволяет отображать только HTML-содержимое, JEditorPane полезен, когда вы хотите открыть и управлять отображением HTML-файлов.

В следующем примере показана простая HTML-страница без CSS.

import javax.swing.text.html.HTMLEditorKit; 
import javax.swing.*;
импорт java.io.*;
import java.net.URL;
import java.awt.*;

public class JEditorTest {

public static void main(String[] args) {

JEditorPane jep = new JEditorPane();
jep.setEditable(false);
jep.setBackground(Color.WHITE);

jep.setBounds(316, 110, 598, 545);

HTMLEditorKit kit = новый HTMLEditorKit();

jep.setEditorKit(kit);

try {
jep.setPage(new URL("http://imss-www.upmf-grenoble.fr/prevert/Prog/Java/swing/JEditorPane.html"));

}
catch (IOException e) {
jep.setContentType("text/html ");
jep.setText("невозможно просмотреть страницу");
}

JScrollPane scrollPane = new JScrollPane(jep);
JFrame f = новый JFrame();
// Следующая строка требует Java 1.3
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(scrollPane);
f.setSize(512, 342);
f.show();
}
}
Output:

JEditorPane - просмотр веб-страницы на java

Результирующее отображение статично, и вы не можете делать ничего, кроме просмотра. Мы хотим сделать гиперссылки кликабельными, связав прослушиватель с гиперссылками:

jep.addHyperlinkListener(new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent e) {
if(e.getEventType() == HyperlinkEvent.Type.ACTIVATED) {
JEditorPane jepane = (JEditorPane)e.getSource();
try {
jepane.setPage(e.getURL());
}catch (IOException ex) {
jepane.setText("ERROR: "+ex.getMessage());
}
}
}
});
JEditorPane также позволяет получить информацию или отредактировать веб-страницу.

JWebBrowser

JWebBrowser — это библиотека, которая позволяет легко интегрироваться в компоненты приложения Swing для создания веб-браузера, импортирующего Internet Explorer или Mozilla на Windows и Mozilla на других операционных системах. Вам необходимо установить последнюю версию Internet Explorer, чтобы избежать задержек компонентов и таблиц стилей CSS.

Разработка JWebBrowser основана на следующих фреймворках и реализация SWT, предоставляющая богатые компоненты. JWebBrowser предлагает полнофункциональный браузер, содержащий Flash-плеер, медиаплеер и HTML-редактор.

Вот ссылка на скачать библиотеку JWebBrowser. Вы также можете скачать и протестировать приложение онлайн. ici.

Использование JWebBrowser очень просто, как показано в следующем коде:

 import java.awt.BorderLayout; 
импорт javax.swing.JComponent;
импорт javax.swing.JFrame;
импорт javax.swing.JPanel;
импорт javax.swing.SwingUtilities;
импорт chrriis.common.UIUtils;
импорт chrriis.dj.nativeswing.swtimpl.NativeInterface;
импорт chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;

public class JWebBrowser {

public static JComponent createContent() {
JPanel contentPane = new JPanel(new BorderLayout());
JWebBrowser webBrowser = new JWebBrowser();
webBrowser.navigate("http://www.orange.fr");
contentPane.add(webBrowser);
возвращаем contentPane;
}

public static void main(String[] args) {
NativeInterface.open();
UIUtils.setPreferredLookAndFeel();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createContent(),
BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
});
NativeInterface.runEventPump();
}
}

JWebBrowser - java веб-браузер

JxBrowser

JxBrowser является наиболее полным API, поскольку он интегрирует браузер Chromium который является расширением Chrome для Linux. JxBrowser сделан с помощью Swing и JavaFX, что позволяет отображать веб-страницы, разработанные на HTML5/CSS3, JavaScript, Siverlight... отлично и без проблем.

JxBrowser API платный и очень дорогой, рекомендуется только в том случае, если он вам действительно нужен и в крупных компаниях. Предлагается пробная версия на один месяц, просто введите свое имя и адрес электронной почты внизу страницы, чтобы получить лицензионный ключ.

вот ссылка на JxBrowser download  с их официального сайта. Вы также можете запустить demo  и протестируйте application.

В следующем коде показано использование JxBrowser.

import java.awt.BorderLayout; 
import javax.swing.JFrame;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;

public class JxBrowserTest {
public static void main(String[] args) {
Browser browser = new Browser();
представление BrowserView = new BrowserView(браузер);

кадр JFrame = новый JFrame();
frame.add(view, BorderLayout.CENTER);
frame.setSize(700, 500);
frame.setVisible(true);

browser.loadURL("http://www.youtube.com");
}
}

Веб-браузер Java с JwBrowser

References:
как использовать панели редактора и панели текста
JWebBrowser Class (DJ Native Swing - SWT) - Диджейский проект
Class JWebBrowser