Class DrawingPanel

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byDrawingPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class DrawingPanel
extends javax.swing.JPanel

Implementa el Panel de dibujo. Incluye los métodos para atender eventos de mouse y para relizar acciones y dibujos.

See Also:
Serialized Form

Nested Class Summary
private  class DrawingPanel.ComponentHandler
          Clase para manejar cambios en el drawing Panel
private  class DrawingPanel.MouseHandler
          Clase para manejar eventos de mouse
private  class DrawingPanel.MouseMotionHandler
          Clase para manejar movimientos de mouse.
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  double anchorX
           
private  double anchorY
           
private  double angulo
          Angulo de Rotación actual
private  boolean anyClick
           
private  int blanco
           
private  double distAct
          Distancia actual desde punto inicial a Punto Actual.
private  double distComp
          Distancia actual desde punto inicial a Punto de Comparación.
private  boolean dontDraw
           
private  boolean evento
          Identifica cambio de tamaño de panel de dibujo.
private  double factor
          Factor de Escalamiento actual.
private  java.awt.geom.Ellipse2D figsC
          Almacena Circulo mientras se dibuja, antes de pasarlo al arreglo de Figuras.
private  java.awt.geom.Line2D figsP
          Almacena la línea mientras se dibuja, antes de pasarlo al arreglo de Figuras.
private  java.awt.geom.Rectangle2D figsR
          Almacena Rectángulo mientras se dibuja, antes de pasarlo al arreglo de Figuras.
private static java.util.ArrayList figuras
          Almacena las figuras creadas por el usuario
private  boolean load
           
private  boolean oneClick
          Identifica el click con botón izquierdo.
private  boolean otherClick
          Identifica un doble click.
private static boolean pressed
          Identifica botón oprimido del mouse.
private  java.awt.geom.Point2D puntoAct
          Punto Actual.
private  java.awt.geom.Point2D puntoComp
          Punto de Comparación.
private  java.awt.geom.Point2D puntoInicial
          Punto del primer click.
private  boolean released
          Identifica botón soltado de mouse.
private static java.awt.geom.AffineTransform tformR
          Contiene la actual transformación de Rotación.
private  boolean twoClick
          Identifica click con botón izquierdo.
 
Fields inherited from class javax.swing.JPanel
 
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.Container
 
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
DrawingPanel()
          Constructor.
 
Method Summary
 java.util.ArrayList getArrayList()
          Retorna el arreglo de figuras
 double[] getT()
          Envia los parametros de la transformacion de rotacion como un arreglo.
 void initt()
          Inicializa el arreglo de figuras, borrando su contenido, para cargar las figuras leidas de archivo.
 boolean isEdited()
          Avisa si ha habido un click que denote edición de figuras
protected  java.awt.geom.Point2D minCoord()
          Devuelve el punto mas arriba y a la izquierda de las figuras.
 void paintComponent(java.awt.Graphics g)
          Implementa el método adecuado para el pintado de la pantalla.
 void paintt()
          Permite que se llame el repintado del Panel de Figuras desde una instancia de DrawingPanel
protected  void scaleDecision(int k, java.lang.String name, double factor, double mx, double my)
           
static void setArrayList(java.awt.Shape entrada)
          Permite ingresar las figuras cuando son leídas desde archivo
 void setEdited(boolean b)
          Avisa que ha sido almacenado el dibujo.
 void setEvento(boolean b)
          Permite controlar la ejecucion de ciertos comandos al invocar paintComponent().
 void setT(double[] a)
          Configura la transformacion de rotacion cuando ha sido leida desde archivo
protected  void translateDecision(int k, java.lang.String name, double x, double y)
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
 

Field Detail

figuras

private static java.util.ArrayList figuras
Almacena las figuras creadas por el usuario


puntoInicial

private java.awt.geom.Point2D puntoInicial
Punto del primer click.


puntoComp

private java.awt.geom.Point2D puntoComp
Punto de Comparación. Usualmente corresponde al primer punto antes de comenzar unn arrastre o drag.


puntoAct

private java.awt.geom.Point2D puntoAct
Punto Actual. Es el punto en que el mouse se encuentra en este momento.


oneClick

private boolean oneClick
Identifica el click con botón izquierdo.


twoClick

private boolean twoClick
Identifica click con botón izquierdo.


otherClick

private boolean otherClick
Identifica un doble click.


figsC

private java.awt.geom.Ellipse2D figsC
Almacena Circulo mientras se dibuja, antes de pasarlo al arreglo de Figuras.


figsR

private java.awt.geom.Rectangle2D figsR
Almacena Rectángulo mientras se dibuja, antes de pasarlo al arreglo de Figuras.


figsP

private java.awt.geom.Line2D figsP
Almacena la línea mientras se dibuja, antes de pasarlo al arreglo de Figuras.


tformR

private static java.awt.geom.AffineTransform tformR
Contiene la actual transformación de Rotación.


dontDraw

private boolean dontDraw

pressed

private static boolean pressed
Identifica botón oprimido del mouse.


released

private boolean released
Identifica botón soltado de mouse.


evento

private boolean evento
Identifica cambio de tamaño de panel de dibujo.


angulo

private double angulo
Angulo de Rotación actual


factor

private double factor
Factor de Escalamiento actual.


distAct

private double distAct
Distancia actual desde punto inicial a Punto Actual.


distComp

private double distComp
Distancia actual desde punto inicial a Punto de Comparación.


blanco

private final int blanco
See Also:
Constant Field Values

load

private boolean load

anyClick

private boolean anyClick

anchorX

private double anchorX

anchorY

private double anchorY
Constructor Detail

DrawingPanel

public DrawingPanel()
Constructor. Crea el panel de dibujo y agrega los manejadores de eventos de mouse.

Method Detail

paintComponent

public void paintComponent(java.awt.Graphics g)
Implementa el método adecuado para el pintado de la pantalla. Se incluyó el código para implementar las manipulaciones, además de sólo dibujar las figuras.

Parameters:
g - El componente gráfico g.

translateDecision

protected void translateDecision(int k,
                                 java.lang.String name,
                                 double x,
                                 double y)

scaleDecision

protected void scaleDecision(int k,
                             java.lang.String name,
                             double factor,
                             double mx,
                             double my)

getArrayList

public java.util.ArrayList getArrayList()
Retorna el arreglo de figuras

Returns:
el arreglo de Figuras.

setArrayList

public static void setArrayList(java.awt.Shape entrada)
Permite ingresar las figuras cuando son leídas desde archivo

Parameters:
entrada - La figura (tipo Shape) leida desde archivo

getT

public double[] getT()
Envia los parametros de la transformacion de rotacion como un arreglo. Se envia el angulo y la coordenada del punto ancla.

Returns:
arrayRet El arreglo con los parametros de rotacion.

setT

public void setT(double[] a)
Configura la transformacion de rotacion cuando ha sido leida desde archivo

Parameters:
a - Un arreglo con angulo y coordenadas de puntos ancla.

setEvento

public void setEvento(boolean b)
Permite controlar la ejecucion de ciertos comandos al invocar paintComponent(). evento es puesto como verdadero cuando se hacen ajustes de componente que llaman a paintComponent() pero que no son dibujo.

Parameters:
b - evento verdadero o falso.

paintt

public void paintt()
Permite que se llame el repintado del Panel de Figuras desde una instancia de DrawingPanel


isEdited

public boolean isEdited()
Avisa si ha habido un click que denote edición de figuras

Returns:
Si ha sido clickado el Panel de Dibujo.

setEdited

public void setEdited(boolean b)
Avisa que ha sido almacenado el dibujo.

Parameters:
b - Si el dibujo ha sido editado

initt

public void initt()
Inicializa el arreglo de figuras, borrando su contenido, para cargar las figuras leidas de archivo. También se inicializa la transformacion de rotacion dejándola como identidad


minCoord

protected java.awt.geom.Point2D minCoord()
Devuelve el punto mas arriba y a la izquierda de las figuras. Se busca el Bounds2D() para cada figura y se escoge la que tenga las coordenadas mas pequeñas.

Returns:
El punto Point2D mas arriba e izquierda en el panel.