Holger's Java API

## com.antelmann.net
Class JWebBrowser

    java.lang.Object
      java.awt.Component
          java.awt.Container
              java.awt.Window
                  java.awt.Frame
                      javax.swing.JFrame
                          com.antelmann.util.gui.JMainFrame
                              com.antelmann.net.JWebBrowser

All Implemented Interfaces:
  Refreshable, ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants

    public class JWebBrowser

extends JMainFrame
implements Refreshable

A very plain Web Browser with minimal functionality; but still cool.

Unfortunately, the caching doesn't work for the main display, yet.

Check out the multiple right-mouse-click options. :-)

At this point, the implementation is completely transient, i.e. nothing is written to disk other than what you explicitly save; so your homepage settings, cache and favorites are reset when you restart the browser.

No support for cookies (that may be the good news ;-), JavaScript, forms, etc. at this point.

There are several other limitations as this implementation is just based on the javax.swing.JEditorPane at this point. However, there are also some features that your average browser does NOT have, such as the display of the server information in the view menu.

To use a customized HTTP Agent when connecting to a web-server, you need to set the system property http.agent accordingly before using this class.

Author:
  Holger Antelmann
See Also:
  `JSpider`, `JEditorPane`, Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class javax.swing.JFrame
`JFrame.AccessibleJFrame`

Nested classes/interfaces inherited from class java.awt.Frame
`Frame.AccessibleAWTFrame`

Nested classes/interfaces inherited from class java.awt.Window
`Window.AccessibleAWTWindow`

Nested classes/interfaces inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Nested classes/interfaces inherited from class java.awt.Component
`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

Field Summary

Fields inherited from class com.antelmann.util.gui.JMainFrame
`hasStatusBar, logger, statusBar, statusLabel, verbose`

Fields inherited from class javax.swing.JFrame
`accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled`

Fields inherited from class java.awt.Frame
`CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface javax.swing.WindowConstants
`DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`JWebBrowser()` initializes with a blank page
`JWebBrowser(String urlHomeSpec)`
`JWebBrowser(URL homeURL)`
`JWebBrowser(URLCache homeURLCache)`

Method Summary
`void` `back()` implements the action for the browser's back button
`protected void` `download(URL url)` downloads the given URL with a JDownloader after the GUI asked for the file name
`void` `forward()` implements the action for the browser's forward button
`Map<?,?>` `getCache()` returns a map of URL objects to URLCache objects
`URL` `getCurrentURL()` returns the page currently displayed
`URL[]` `getFavorites()` returns the list of favorites
`URL` `getHome()` returns the page currently set as the home page
`static void` `main(String[] args)` starts the JWebBrowser and makes it visible; you can optionally specify a URL as parameter
`void` `refreshContent()` implements the action for the browser's refresh button
`void` `setHome(URL homeURL)`
`void` `setPage(URL url)` sets the current page for the browser's main window; the call may be ignored if the browser is currently busy loading another page (preventing multiple loads)
`void` `stopLoading()` implements the action for the browser's stop button
`protected void` `validateLinks(URLCache uc)` shows a window with the broken links in this page
`protected void` `viewHTML()` shows a window with the HTML code
`protected void` `viewImageList()` shows a window with the embedded images from the current page
`protected void` `viewLinkList()` shows a window with the links from the given page (as probably not all links are accessible via hyperlink from the JEditorPane)
`protected void` `viewTextOnly()` shows a window with only the text stripped from the HTML

Methods inherited from class com.antelmann.util.gui.JMainFrame
`complain, dispose, getStatusText, hasStatusBar, initStatusBar, say, setCentralContent, setStatusText, updateStatusText`

Methods inherited from class javax.swing.JFrame

`addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update`

Methods inherited from class java.awt.Frame
`addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated`

Methods inherited from class java.awt.Window

`addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront`

Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree`

Methods inherited from class java.awt.Component

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface java.awt.MenuContainer
`getFont, postEvent`

Constructor Detail

### JWebBrowser

    public JWebBrowser()

  initializes with a blank page

### JWebBrowser

    public JWebBrowser(String urlHomeSpec)
                throws IOException

Throws:
  `IOException`

### JWebBrowser

    public JWebBrowser(URL homeURL)

### JWebBrowser

    public JWebBrowser(URLCache homeURLCache)

Method Detail

### viewTextOnly

    protected void viewTextOnly()

  shows a window with only the text stripped from the HTML

### viewHTML

    protected void viewHTML()

  shows a window with the HTML code

### viewImageList

    protected void viewImageList()

  shows a window with the embedded images from the current page

### viewLinkList

    protected void viewLinkList()

  shows a window with the links from the given page (as probably not all links are accessible via hyperlink from the JEditorPane)

### validateLinks

    protected void validateLinks(URLCache uc)

  shows a window with the broken links in this page

### refreshContent

    public void refreshContent()

  implements the action for the browser's refresh button

  Specified by:
    `refreshContent` in interface `Refreshable`

### setPage

    public void setPage(URL url)

  sets the current page for the browser's main window; the call may be ignored if the browser is currently busy loading another page (preventing multiple loads)

### stopLoading

    public void stopLoading()

  implements the action for the browser's stop button

### download

    protected void download(URL url)

  downloads the given URL with a JDownloader after the GUI asked for the file name

  See Also:
    `JDownloader`

### back

    public void back()

  implements the action for the browser's back button

### forward

    public void forward()

  implements the action for the browser's forward button

### getHome

    public URL getHome()

  returns the page currently set as the home page

### getFavorites

    public URL[] getFavorites()

  returns the list of favorites

### setHome

    public void setHome(URL homeURL)

### getCurrentURL

    public URL getCurrentURL()

  returns the page currently displayed

### getCache

    public Map<?,?> getCache()

  returns a map of URL objects to URLCache objects

### main

    public static void main(String[] args)
                     throws Exception

  starts the JWebBrowser and makes it visible; you can optionally specify a URL as parameter

  Throws:
    `Exception`

(c) Holger Antelmann since 2001- all rights reserved (contact: info@antelmann.com)
see www.antelmann.com/developer for further details and available downloads