|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--java.awt.Window | +--java.awt.Frame | +--javax.swing.JFrame | +--configure.ConfigureDemo
ConfigureDemo brings up a simple button editor which allows the user to configure the appearance of a JPanel which is passed as an argument to its constructor. These changes are for the session only, and will not be saved anywhere. When the static method main() is run, an instance of ConfigureDemo is created, as well as a SquarePuzzle and SquarePuzzleDisplay. The SquarePuzzleDisplay is used in the construction of the ConfigureDemo instance. This code demonstrates several important features: (1) ConfigureDemo doesn't know anything about the internal structure of the JPanel being edited. It simply listens for events generated by AbstractButtons on the JPanel. (2) When a user clicks on a button in the SquarePuzzle, the generated ActionEvent is heard both by the ConfigureDemo, which sets theComponent appropriately, and also by the Translation component of SquarePuzzle (which, in this case, consists of a single actionPerformed() method in SquarePuzzleDisplay.java). Consequently, the editing can potentially go on at the same time as the use of the JPanel. (3) ConfigureDemo doesn't notice when something else undoes its configurations. For instance, the SquarePuzzle resets the Text fields of the TileButtons of the SquarePuzzleDisplay after each attempt to slide a tile. This would be a drawback for many applications, and a feature for many others. (4) actionPerformed() is not careful about verifying the source of the ActionEvents it receives. For example, any component which has an attached ActionCommand "Quit" will cause the program to exit, not just the Quit menu. This would cause problems if the given JPanel contains a Quit button, to which we wanted to attach an icon. Also, if an ActionEvent is generated which does not come from an AbstractButton, our program will generate errors. This is because our actionPerformed() function does not check to make sure every ActionEvent comes from an AbstractButton, but assumes so anyway. Do not use this code as a model for good program design. It is intended to illustrate only the following:
Inner classes inherited from class javax.swing.JFrame |
javax.swing.JFrame.AccessibleJFrame |
Inner classes inherited from class java.awt.Frame |
java.awt.Frame.AccessibleAWTFrame |
Inner classes inherited from class java.awt.Window |
java.awt.Window.AccessibleAWTWindow |
Inner classes inherited from class java.awt.Container |
java.awt.Container.AccessibleAWTContainer |
Inner classes inherited from class java.awt.Component |
java.awt.Component.AccessibleAWTComponent |
Field Summary | |
protected javax.swing.AbstractButton |
theComponent
|
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, 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 | |
ConfigureDemo(ActionPanel targetPanel)
Creates a new Frame with a configuration menu, and a contentPane with contains targetPanel. |
Method Summary | |
void |
actionPerformed(java.awt.event.ActionEvent e)
|
static void |
main(java.lang.String[] args)
Creates a new ConfigureDemo with a SquarePuzzleDisplay as its targetPanel. |
protected void |
menuSetUp()
Creates and configures the MenuBar. |
protected javax.swing.JMenuItem |
newMI(javax.swing.JMenu m,
java.lang.String newMenuItemText)
newMI creates a new MenuItem with given Text string, adds it to the given Menu, registers the ConfigureDemo as ActionListener for the MenuItem, and returns the new MenuItem (in case further customization is desired). |
protected javax.swing.JMenuItem |
newMI(javax.swing.JMenu m,
java.lang.String newMenuItemText,
java.lang.String iconFileName)
A slight enhancement to the previous newMI. |
Methods inherited from class javax.swing.JFrame |
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, processKeyEvent, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update |
Methods inherited from class java.awt.Frame |
addNotify, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle |
Methods inherited from class java.awt.Window |
addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isShowing, pack, postEvent, processEvent, removeWindowListener, setCursor, show, toBack, toFront |
Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFont, validate, validateTree |
Methods inherited from class java.awt.Component |
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, 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, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.awt.MenuContainer |
getFont, postEvent |
Field Detail |
protected javax.swing.AbstractButton theComponent
Constructor Detail |
public ConfigureDemo(ActionPanel targetPanel)
Method Detail |
protected javax.swing.JMenuItem newMI(javax.swing.JMenu m, java.lang.String newMenuItemText)
protected javax.swing.JMenuItem newMI(javax.swing.JMenu m, java.lang.String newMenuItemText, java.lang.String iconFileName)
protected void menuSetUp()
public static void main(java.lang.String[] args)
public void actionPerformed(java.awt.event.ActionEvent e)
actionPerformed
in interface java.awt.event.ActionListener
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |