Class ThumbelinaFrame
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
org.htmlparser.lexerapplications.thumbelina.ThumbelinaFrame
- All Implemented Interfaces:
ActionListener,ItemListener,WindowListener,ImageObserver,MenuContainer,PropertyChangeListener,Serializable,EventListener,Accessible,RootPaneContainer,WindowConstants
public class ThumbelinaFrame
extends JFrame
implements WindowListener, ActionListener, ItemListener, PropertyChangeListener
Encapsulate a Thumbelina bean and add menu and preferences support.
Provides a JFrame base in which to place a Thumbelina bean, and
adds a menu system with MRU (Most Recently Used) list.
Also provides a Google search capability.
Will eventually provide Javahelp too.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrameNested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrameNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected JMenuItemAbout menu item.protected JMenuItemClear menu itemprotected JMenuVommand menu.protected JMenuItemExit menu item.protected JMenuItemGoogle menu item.protected JMenuHelp submenu.protected JCheckBoxMenuItemHistory list visible menu item.protected JMenuBarMain menu.protected JMenuItemOpen menu item.protected JMenuItemReset menu item.protected JSeparatorMRU list separator #1.protected JSeparatorMRU list separator #2.protected JCheckBoxMenuItemStatus bar visible menu item.protected JMenuURL submenu.protected JMenuView submenu.Fields inherited from class javax.swing.JFrame
accessibleContext, rootPane, rootPaneCheckingEnabledFields 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_CURSORFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionConstruct a new Thumbelina frame with an idle Thumbelina.ThumbelinaFrame(String url) Construct a new Thumbelina frame with a Thumbelina primed with one URL.ThumbelinaFrame(URL url) Construct a new Thumbelina frame with a Thumbelina primed with one URL.ThumbelinaFrame(Thumbelina thumbelina) Construct a new Thumbelina frame with a given Thumbelina. -
Method Summary
Modifier and TypeMethodDescriptionvoidabout()Display information about Thumbelina.voidactionPerformed(ActionEvent actionEvent) Handles events from the menu.voidexit()Exits the application.protected RectanglefromString(String value) Convert the given string to a valid rectangle.Access the Thumbelina object contained in the frame.voidQuery google via user specified keywords and queue results.voidinitSize()Sets the frame size if no previous preference has been stored.voidInitialize the user preferences.voiditemStateChanged(ItemEvent event) Handles selections on the view state checkboxes.static voidAlternate mainline for Thumbelina.voidmakeMenu()Create the menu.voidopen()Opens a user specified URL.voidHandle a property change.voidRestores the window size based on stored preferences.voidSaves the current settings in the user preferences.protected StringConverts the rectangle to a string.voidAdjusts the menu, by inserting the current MRU list.voidUpdates the user preferences based on the most recently used list.voidwindowActivated(WindowEvent event) Invoked when the window is set to be the user's active window, which means the window (or one of its subcomponents) will receive keyboard events.voidwindowClosed(WindowEvent event) Invoked when a window has been closed as the result of calling dispose on the window.voidwindowClosing(WindowEvent event) Handles window closing event.voidwindowDeactivated(WindowEvent event) Invoked when a window is no longer the user's active window, which means that keyboard events will no longer be delivered to the window or its subcomponents.voidwindowDeiconified(WindowEvent event) Invoked when a window is changed from a minimized to a normal state.voidwindowIconified(WindowEvent event) Invoked when a window is changed from a normal to a minimized state.voidwindowOpened(WindowEvent event) Invoked the first time a window is made visible.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, updateMethods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecoratedMethods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFrontMethods 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, transferFocusDownCycle, validate, validateTreeMethods 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, 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, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.awt.MenuContainer
getFont, postEvent
-
Field Details
-
mMenu
Main menu. -
mURL
URL submenu. -
mOpen
Open menu item. -
mGoogle
Google menu item. -
mSeparator1
MRU list separator #1. -
mSeparator2
MRU list separator #2. -
mExit
Exit menu item. -
mView
View submenu. -
mStatusVisible
Status bar visible menu item. -
mHistoryVisible
History list visible menu item. -
mCommand
Vommand menu. -
mReset
Reset menu item. -
mClear
Clear menu item -
mHelp
Help submenu. -
mAbout
About menu item.
-
-
Constructor Details
-
ThumbelinaFrame
public ThumbelinaFrame()Construct a new Thumbelina frame with an idle Thumbelina. -
ThumbelinaFrame
Construct a new Thumbelina frame with a Thumbelina primed with one URL.- Parameters:
url- The URL to prime the Thumbelina with.- Throws:
MalformedURLException- If the given string doesn't represent a valid url.
-
ThumbelinaFrame
Construct a new Thumbelina frame with a Thumbelina primed with one URL.- Parameters:
url- The URL to prime the Thumbelina with.
-
ThumbelinaFrame
Construct a new Thumbelina frame with a given Thumbelina.- Parameters:
thumbelina- The Thumbelina to encapsulate.
-
-
Method Details
-
getThumbelina
Access the Thumbelina object contained in the frame.- Returns:
- The Thumbelina bean.
-
initState
public void initState()Initialize the user preferences. Reads from the existing user preferences, or initializes values from the bean directly if they don't exist. Sets the state of the view checkboxes to match. -
saveState
public void saveState()Saves the current settings in the user preferences. By default this writes to the thumbelina subdirectory under .java in the users home directory. -
initSize
public void initSize()Sets the frame size if no previous preference has been stored. It creates a window covering all butBORDERPERCENTmargins. -
restoreSize
public void restoreSize()Restores the window size based on stored preferences. If no preferences exist, it callsinitSize(). -
toString
Converts the rectangle to a string. The rectangle is converted into a string that is of the form[x,y,width,height].
- Parameters:
r- The rectangle containing the window position and size, as returned bygetBounds().- Returns:
- The string equivalent of the rectangle.
-
fromString
Convert the given string to a valid rectangle. The string is converted to a Rectangle.- Parameters:
value- The value to parse.- Returns:
- Returns the rectangle extracted from the string.
- Throws:
IllegalArgumentException- if the format does not match the form "[x,y,width,height]" with all values integers.
-
makeMenu
public void makeMenu()Create the menu. Initializes the menu and adds it to the frame. -
updateMenu
public void updateMenu()Adjusts the menu, by inserting the current MRU list. Removes the old MRU (Most Recently Used) items and inserts new ones betweeen the two separators. -
windowOpened
Invoked the first time a window is made visible. Not used.- Specified by:
windowOpenedin interfaceWindowListener- Parameters:
event- The window event.
-
windowClosing
Handles window closing event. Performs functionexitApplication().- Specified by:
windowClosingin interfaceWindowListener- Parameters:
event- The window event.
-
windowClosed
Invoked when a window has been closed as the result of calling dispose on the window. Not used.- Specified by:
windowClosedin interfaceWindowListener- Parameters:
event- The window event.
-
windowIconified
Invoked when a window is changed from a normal to a minimized state. For many platforms, a minimized window is displayed as the icon specified in the window's iconImage property. Not used.- Specified by:
windowIconifiedin interfaceWindowListener- Parameters:
event- The window event.
-
windowDeiconified
Invoked when a window is changed from a minimized to a normal state. Not used.- Specified by:
windowDeiconifiedin interfaceWindowListener- Parameters:
event- The window event.
-
windowActivated
Invoked when the window is set to be the user's active window, which means the window (or one of its subcomponents) will receive keyboard events. Not used.- Specified by:
windowActivatedin interfaceWindowListener- Parameters:
event- The window event.
-
windowDeactivated
Invoked when a window is no longer the user's active window, which means that keyboard events will no longer be delivered to the window or its subcomponents. Not used.- Specified by:
windowDeactivatedin interfaceWindowListener- Parameters:
event- The window event.
-
actionPerformed
Handles events from the menu. Based on the action of the event, executes the necessary subroutine.- Specified by:
actionPerformedin interfaceActionListener- Parameters:
actionEvent- The event describing the user action.
-
itemStateChanged
Handles selections on the view state checkboxes.- Specified by:
itemStateChangedin interfaceItemListener- Parameters:
event- The event describing the checkbox affected.
-
propertyChange
Handle a property change.- Specified by:
propertyChangein interfacePropertyChangeListener- Parameters:
event- The property old and new values.
-
updateMRU
Updates the user preferences based on the most recently used list.- Parameters:
url- The URL that is to be placed at the top of the MRU list.
-
open
public void open()Opens a user specified URL. -
googlesearch
public void googlesearch()Query google via user specified keywords and queue results. Asks the user for keywords, and then submits them as input to the usual google form:
Creates a query of the form:http://www.google.ca/search?hl=en&ie=UTF-8&oe=UTF-8&q=thumbs&btnG=Google+Search&meta=
-
about
public void about()Display information about Thumbelina. -
exit
public void exit()Exits the application. Saves user preferences before exiting. -
main
Alternate mainline for Thumbelina. Similar code exists in the Thumbelina class, but this version doesn't worry about java version.- Parameters:
args- The command line arguments. Optionally, arg[0] can be the URL to preload the Thumeblina bean with.
-