# Class VentanaJuegoPasaPalabra

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
Vista.VentanaJuego
Vista.VentanaJuegoPasaPalabra

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

public class VentanaJuegoPasaPalabra extends VentanaJuego
Ventana gráfica para el juego PasaPalabra.

Version:
  1.1
Author:
  Adrián
See Also:
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `private class`
  `VentanaJuegoPasaPalabra.PanelRosco`

  ### Nested classes/interfaces inherited from class JFrame

  `JFrame.AccessibleJFrame`

  ### Nested classes/interfaces inherited from class Frame

  `Frame.AccessibleAWTFrame`

  ### Nested classes/interfaces inherited from class Window

  `Window.AccessibleAWTWindow, Window.Type`

  ### Nested classes/interfaces inherited from class Container

  `Container.AccessibleAWTContainer`

  ### Nested classes/interfaces inherited from class Component

  `Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `private JButton`
  `btnPasaPalabra`
  `private JButton`
  `btnPausar`
  `private JButton`
  `btnResponder`
  `private final PasaPalabra`
  `juego`
  `private final Usuario`
  `jugador`
  `private JLabel`
  `lblAciertos`
  `private JTextArea`
  `lblDefinicion`
  `private JLabel`
  `lblFallos`
  `private JLabel`
  `lblLetra`
  `private JLabel`
  `lblPasaPalabras`
  `private JLabel`
  `lblTiempo`
  `private VentanaJuegoPasaPalabra.PanelRosco`
  `panelRosco`
  `private final Partida`
  `partida`
  `private int`
  `segundosRestantes`
  `private static final int`
  `TIEMPO_INICIAL`
  `private Timer`
  `timerSwing`
  `private JTextField`
  `txtRespuesta`

  ### Fields inherited from class VentanaJuego

  `gestorEstadisticas, gestorPartidas, ventanaPadre`

  ### Fields inherited from class JFrame

  `accessibleContext, rootPane, rootPaneCheckingEnabled`

  ### Fields inherited from class 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 Component

  `BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

  ### Fields inherited from interface ImageObserver

  `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  ### Fields inherited from interface WindowConstants

  `DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `VentanaJuegoPasaPalabra(Partida partida, GestorPartidas gestorPartidas, GestorEstadisticas gestorEstadisticas, JFrame ventanaPadre)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `accionFinalizar()`
  Finaliza la partida, registra las estadísticas y vuelve al menú principal.
  `protected void`
  `accionPausar()`
  Pausa la partida actual, guarda su estado en disco y vuelve al menú principal.
  `void`
  `actualizarVista()`
  Actualiza la interfaz gráfica con el estado actual del juego.
  `private JPanel`
  `construirPanelControl()`
  `private JPanel`
  `construirPanelDerecho()`
  `private void`
  `construirUI()`
  `private JButton`
  `crearBoton(String texto, Color bgColor, ActionListener listener)`
  `private JLabel`
  `crearLabel(String texto, Font fuente, Color color)`
  `private void`
  `detenerTimer()`
  `private void`
  `flashMensaje(String mensaje, Color color)`
  `private void`
  `iniciarTimer()`
  `private void`
  `mostrarTiempo(int segundos)`
  `private void`
  `onPasaPalabra()`
  `private void`
  `onResponder()`

  ### Methods inherited from class 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 Frame

  `addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated`

  ### Methods inherited from class 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, toFront`

  ### Methods inherited from class 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, validateTree`

  ### Methods inherited from class 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, transferFocusUpCycle`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface MenuContainer

  `getFont, postEvent`

- ## Field Details

  - ### juego

    private final PasaPalabra juego

  - ### jugador

    private final Usuario jugador

  - ### partida

    private final Partida partida

  - ### panelRosco

    private VentanaJuegoPasaPalabra.PanelRosco panelRosco

  - ### lblDefinicion

    private JTextArea lblDefinicion

  - ### lblLetra

    private JLabel lblLetra

  - ### lblAciertos

    private JLabel lblAciertos

  - ### lblFallos

    private JLabel lblFallos

  - ### lblPasaPalabras

    private JLabel lblPasaPalabras

  - ### lblTiempo

    private JLabel lblTiempo

  - ### txtRespuesta

    private JTextField txtRespuesta

  - ### btnResponder

    private JButton btnResponder

  - ### btnPasaPalabra

    private JButton btnPasaPalabra

  - ### btnPausar

    private JButton btnPausar

  - ### timerSwing

    private Timer timerSwing

  - ### segundosRestantes

    private int segundosRestantes

  - ### TIEMPO_INICIAL

    private static final int TIEMPO_INICIAL
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### VentanaJuegoPasaPalabra

    public VentanaJuegoPasaPalabra(Partida partida, GestorPartidas gestorPartidas, GestorEstadisticas gestorEstadisticas, JFrame ventanaPadre)
    Parameters:
      `partida` - Partida activa (contiene el juego y los jugadores).
      `gestorPartidas` - Para pausar y finalizar.
      `gestorEstadisticas` - Para registrar el resultado al finalizar.
      `ventanaPadre` - Ventana a la que volver al cerrar.

- ## Method Details

  - ### construirUI

    private void construirUI()

  - ### construirPanelDerecho

    private JPanel construirPanelDerecho()

  - ### construirPanelControl

    private JPanel construirPanelControl()

  - ### actualizarVista

    public void actualizarVista()
    Description copied from class: `VentanaJuego`
    Actualiza la interfaz gráfica con el estado actual del juego. Cada subclase implementa su propia lógica de pintado.
    Specified by:
      `actualizarVista` in class `VentanaJuego`

  - ### onResponder

    private void onResponder()

  - ### onPasaPalabra

    private void onPasaPalabra()

  - ### accionPausar

    protected void accionPausar()
    Description copied from class: `VentanaJuego`
    Pausa la partida actual, guarda su estado en disco y vuelve al menú principal.
    Overrides:
      `accionPausar` in class `VentanaJuego`

  - ### accionFinalizar

    protected void accionFinalizar()
    Description copied from class: `VentanaJuego`
    Finaliza la partida, registra las estadísticas y vuelve al menú principal. El orden importa: primero finalizarPartida() para que fechaFin quede establecida, luego registrarResultado() que necesita esa fecha.
    Overrides:
      `accionFinalizar` in class `VentanaJuego`

  - ### iniciarTimer

    private void iniciarTimer()

  - ### detenerTimer

    private void detenerTimer()

  - ### mostrarTiempo

    private void mostrarTiempo(int segundos)

  - ### crearLabel

    private JLabel crearLabel(String texto, Font fuente, Color color)

  - ### crearBoton

    private JButton crearBoton(String texto, Color bgColor, ActionListener listener)

  - ### flashMensaje

    private void flashMensaje(String mensaje, Color color)