JPuzzle.Graphics
Class Mesa

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by JPuzzle.Graphics.Mesa
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class Mesa
extends javax.swing.JPanel

La mesa es la vista del tablero, se encarga de mostrar los datos en el viewport, aceptar los eventos del mouse y reaccionar consecuentemente.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
Mesa()
          Construye una nueva mesa descendiente de JPanel.
 
Method Summary
 void addMesaActionListener(MesaActionListener l)
          Agrega una vista receptora de eventos a la lista.
 void cambiarTamaño(int ancho, int alto)
          Cambia el tamaño del tablero a unas nuevas dimensiones.
 void desordenar()
          Desordena la tabla, pero lo ejecuta en un thread separado, para no afectar la velocidad de los eventos.
protected  void fireAction(boolean running, java.lang.String message)
          Avisa a todas las vistas que hubo un cambio en el estado de "ejecutandose".
 boolean isAnimated()
          Devuelve el estado de está animado.
 boolean isRunning()
          Devuelve el estado de "ejecutandose".
 boolean isShowGrid()
          Devuelve el estado de mostrando rejilla.
 boolean isShowImages()
          Devuelve el estado de mostrando imágenes.
 boolean isShowNumbers()
          Devuelve el estado de mostrando números.
 void paint(java.awt.Graphics g)
          Pinta el tablero, recorre la tabla dibujando la imágen, la rejilla y el número correspondiente a cada celda.
 void removeMesaActionListener(MesaActionListener l)
          Remueve una vista receptora de eventos de la lista.
 void resolver()
          Resuelve la tabla, pero lo ejecuta en un thread separado, para no afectar la velocidad de los eventos.
 void setAnimated(boolean animated)
          Asigna el estado de está animado.
 void setShowGrid(boolean showGrid)
          Asigna el estado de mostrando rejilla.
 void setShowImages(boolean showImages)
          Asigna el estado de mostrando imágenes.
 void setShowNumbers(boolean showNumbers)
          Asigna el estado de mostrando números.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Mesa

public Mesa()
Construye una nueva mesa descendiente de JPanel.

Method Detail

paint

public void paint(java.awt.Graphics g)
Pinta el tablero, recorre la tabla dibujando la imágen, la rejilla y el número correspondiente a cada celda. Calcula las coordenadas correspondientes. El acceso a la tabla lo realiza a traves de la función getCelda() en la clase tablero; se espera que no exista ningún problema con la sincronización (aunque no está sincronizado -- overhead), por eso se almacena una referencia al tablero, por si este cambia. Le falta optimización. Debería de corren en el Swing Event Dispatching Thread.

Overrides:
paint in class javax.swing.JComponent
Parameters:
g - Graphics from Java System

desordenar

public void desordenar()
Desordena la tabla, pero lo ejecuta en un thread separado, para no afectar la velocidad de los eventos. Lo sincroniza con el tablero.


resolver

public void resolver()
Resuelve la tabla, pero lo ejecuta en un thread separado, para no afectar la velocidad de los eventos. Lo sincroniza con el tablero.


cambiarTamaño

public void cambiarTamaño(int ancho,
                          int alto)
Cambia el tamaño del tablero a unas nuevas dimensiones. Se sincroniza con el tablero anterior.

Parameters:
ancho - el nuevo ancho
alto - el nuevo alto

addMesaActionListener

public void addMesaActionListener(MesaActionListener l)
Agrega una vista receptora de eventos a la lista.

Parameters:
l - la vista que va a recibir el evento

removeMesaActionListener

public void removeMesaActionListener(MesaActionListener l)
Remueve una vista receptora de eventos de la lista.

Parameters:
l - la vista que se va a eliminar

fireAction

protected void fireAction(boolean running,
                          java.lang.String message)
Avisa a todas las vistas que hubo un cambio en el estado de "ejecutandose".


isShowNumbers

public boolean isShowNumbers()
Devuelve el estado de mostrando números.

Returns:
el estado de mostrando números

setShowNumbers

public void setShowNumbers(boolean showNumbers)
Asigna el estado de mostrando números.

Parameters:
showNumbers - el estado de mostrando números

isShowImages

public boolean isShowImages()
Devuelve el estado de mostrando imágenes.

Returns:
el estado de mostrando imágenes

setShowImages

public void setShowImages(boolean showImages)
Asigna el estado de mostrando imágenes.

Parameters:
showImages - el estado de mostrando imágenes

isShowGrid

public boolean isShowGrid()
Devuelve el estado de mostrando rejilla.

Returns:
el estado de mostrando rejilla

setShowGrid

public void setShowGrid(boolean showGrid)
Asigna el estado de mostrando rejilla.

Parameters:
showGrid - el estado de mostrando rejilla

isAnimated

public boolean isAnimated()
Devuelve el estado de está animado.

Returns:
el estado de está animado

setAnimated

public void setAnimated(boolean animated)
Asigna el estado de está animado.

Parameters:
animated - el estado de está animado

isRunning

public boolean isRunning()
Devuelve el estado de "ejecutandose".

Returns:
el estado de "ejecutandose"