Embed a lightweight Chromium-based Swing component into your Java application to display modern web pages built with HTML5, CSS3, JavaScript, Flash, Silverlight etc.

Why JxBrowser

Features


Lightweight Component

Starting from version 4.0, JxBrowser provides a totally lightweight Swing component for displaying web pages. All web page rendering happens in separate native Chromium processes.

Flash and Silverlight

JxBrowser allows displaying Adobe Flash and Microsoft Silverlight contents. You will need to have Flash plugin and Silverlight installed.
Learn more.

Browser Events

You can listen to different web browser events such as Load (StartLoadingFrame , FinishLoadingFrame, FailLoadingFrame , DocumentLoadedInFrame and DocumentLoadedInMainFrame), Title and Zoom change events. Render process events such as RenderCreated and RenderGone is also available. See example.

DOM Access

You can find required HTML elements by tag name or ID; get/set HTML element attributes; listen to different DOM events such as click, mousedown, keydown, keyup, load, unload etc. See example.

JavaScript Dialogs

The JavaScript dialogs such as alert, confirmation, prompt, beforeunload, file upload dialog can be handled using DialogHandler. You can choose whether a JavaScript dialog should be displayed or not and how the dialog should look like. See example.

Proxy, Basic, Digest and NTLM authentication

With DialogHandler you can also handle basic, digest, NTML and Proxy authentications.

Zooming

You can zoom in, zoom out a web page or set your own zoom level for the currently loaded web page. Zoom level is configured for each domain separately. To make sure that zoom level for the web page is changed you can use ZoomListener. You can choose whether a JavaScript dialog should be displayed or not and how the dialog should look like. See example.

Display Web Accurately

The lightweight component displays images generated by Chromium engine. Because of this web pages will look exactly as in Google Chrome.

Cookies

Using CookieStorage object you can receive all the cookies including secure and HTTP-only ones, delete all the cookies or a specific one, create and register new cookies. See example.

Bidirectional JavaScript-Java Bridge

You can execute JavaScript code on the loaded web page and return the result of execution to the Java side. You can register new JavaScript functions and associate them with Java methods. Every time JavaScript invokes this function an appropriate Java method will be applied. See example.

Custom Context Menu

The ContextMenuHandler allows you to handle the situation when context menu should be displayed. You can build your own Swing context menu, using different useful information from ContextMenuParams, such as context menu location, selection text, link URL, link text, HTML element media type etc. See example.

HTML to Image

Using BrowserView.getImage() method you can get an image representation of the loaded web page including hidden scrollable area. Image can be saved in PNG, JPEG and other graphic formats. See example.

Console Listener

Using the ConsoleListener you can listen to console message events including JavaScript errors. See example

Load Handler

The LoadHandler allows you to handle navigation to any URL address and cancel it when it's necessary. See example

Saving Web Page

The Browser.saveWebPage() allows you to save the loaded web page as a set of files. See example

Web Standards

JxBrowser supports all the modern web standards including HTML5, CSS3 and JavaScript. In general JxBrowser supports the same web standards as Google Chrome.

Proxy Settings

You can configure each Browser instance to use its own proxy settings. Various configurations are supported: auto detect proxy, manual proxy configuration for HTTP, HTTPS, FTP protocols, direct proxy, proxy auto configuration files. See example.

Java Web Start and Java Applet

You can use JxBrowser library in Java applications that are deployed via Java Web Start or Java Applet. Read more in JxBrowser Programmer’s Guide.

Popups

All popup windows can be handled with PopupHandler. It is you to decide whether popup window should be displayed or not and how exactly you want it to be displayed (e.g. in a separate window, in your application tab etc.). See example.

User-agent

With JxBrowser you can set your own user-agent for all Browser instances. See example.

File Download & Upload

DownloadHandler allows you to handle file downloads and control whether a file should be downloaded or not. You can also receive notifications about download progress, speed, completion percentage, received bytes etc. See example.

When user clicks the file upload INPUT element on a web page, the DialogHandler.onFileChooser() method will be invoked. Using this method you can display your own file chooser dialog where user can select a file to upload.

Key Filter

Using the KeyFilter you can filter all keyboard events before they will be passed to the Chromium engine. See example

Try the Demo

Run The Demo jxbrowserdemo.jnlp

Runs on Windows, Mac OS X & Linux with:

The same Demo application you can find in the /demo directory of JxBrowser distribution package and run it locally. More Details.

Examples of Apps Our Customers Build

JxBrowser is created to help Java developers to build the following kinds of applications::

Licensing and Pricing

By using our products or any related documentation, you accept the Terms and Conditions of the Product Licence Agreement.

What You Get

  • Perpetual Development Licence
  • Free runtime distribution
  • Free minor version product updates
  • Free major version upgrade within 60 days of purchase date
  • Free Standard Support pack (55 hours)
  • No annual renewal fee
  • 15% discount on other TeamDev products

Per Developer

$1,599

Per Project

$4,699

Unlimited

$14,599

Source Code

$11,499

Support Renewal

$1,199

Premium Support

Technical FAQ

JxBrowser supports Windows XP SP2, Vista, 7, 8, Server 2003 SP1, Server 2008, Server 2012, Mac OS X 10.7 - 10.9 (Intel), Ubuntu 12.04 LTS 32- and 64-bit. Oracle and Apple JDK 1.6 and higher 32- and 64-bit.

No, all the required Chromium binaries are deployed with JxBrowser library. You even don’t need to install Google Chrome to work with JxBrowser.

The library uses Chromium 38.0.2078.0 build.

Yes, you can use JxBrowser in Java Applet and JWS applications like standard Java library. You can find more information about it in JxBrowser Programmer’s Guide .

Right now JxBrowser is compatible only with Java Swing/AWT. JavaFX support will be added in one of the future versions.

You can find a lot of examples in JxBrowser distribution package and online at JxBrowser Samples web page.

Licensing FAQ

A: You can distribute unlimited number of copies of your product with our library enclosed. Please use Runtime Licence for distribution of your product.

Runtime Licence is provided free of charge.

A: Yes, you can purchase JxBrowser Source Code Licence; it is provided on a per developer basis. Please contact our sales team if you are interested in this option.

A: Upon purchase of licence you will receive a licence archive. The archive will contain two JARs: development.jar and runtime.jar. Development.jar is the licence that should be used in development process. Runtime.jar should be used to distribute your application to end users.

A: You may want to purchase a Project licence, which is more cost-effective in case there are 3 and more developers on the team.

A: The best solution would be to purchase the Unlimited licence, which covers any number developers and projects in one company.

The Project licence is tied to one project only.

A: Yes, our licences are tied to a company, not to a specific developer. You can transfer licences to other developers provided that the number of developers, working on your team equals the number of licences purchased.

Getting Help

Product Forums

You will need a Google ID to be able to post on forums, and you can do that

Note that your message will be automatically posted on the web.

Evaluation Support

Standard Support

Premium Support

Your support is phenomenal... Your responsiveness is really helpful... I continue to be impressed with you and your team. John Michelsen, iTKO, Inc.
I've just purchased the license. I would like to thank Vladimir for an excellent support in a responsive manner. This really helped us to close the deal quickly. Maty Siman, Checkmarx Ltd


Evaluate

We will use this name when writing to you.
We will send you the link for downloading evaluation key to this address. We will not give your email address to anybody else.
Tell us about your project so that we can give you hints on using our product in your app.