# Class VentanaSeleccionJuego

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
javax.swing.JDialog
Vista.VentanaSeleccionJuego

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

public class VentanaSeleccionJuego extends JDialog
Diálogo modal que permite al usuario seleccionar el juego al que desea jugar.

Se muestra como ventana bloqueante sobre la ventana padre. Una vez cerrado, el resultado se obtiene mediante `getJuegoSeleccionado()`.

Version:
  1.0
Author:
  JP-Aceves
See Also:
  - Serialized Form

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class JDialog

  `JDialog.AccessibleJDialog`

  ### Nested classes/interfaces inherited from class Dialog

  `Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityType`

  ### 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 String`
  `juegoSeleccionado`
  Nombre del juego elegido por el usuario, o `null` si canceló.
  `private JList<String>`
  `listaJuegos`
  Componente visual que muestra la lista de juegos disponibles.

  ### Fields inherited from class JDialog

  `accessibleContext, rootPane, rootPaneCheckingEnabled`

  ### Fields inherited from class Dialog

  `DEFAULT_MODALITY_TYPE`

  ### 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
  `VentanaSeleccionJuego(JFrame padre, GestorJuegos gestorJuegos)`
  Construye y muestra el diálogo de selección de juego.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `private void`
  `accionCancelar()`
  Establece el resultado como `null` y cierra el diálogo.
  `private void`
  `accionSeleccionar()`
  Guarda el juego seleccionado en la lista y cierra el diálogo.
  `private void`
  `estilizarBoton(JButton btn, Color bg, Color fg)`
  `String`
  `getJuegoSeleccionado()`
  Devuelve el nombre del juego que el usuario seleccionó.

  ### Methods inherited from class JDialog

  `addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update`

  ### Methods inherited from class Dialog

  `addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, setVisible, show, toBack`

  ### 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, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, 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, remove, 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`

- ## Field Details

  - ### juegoSeleccionado

    private String juegoSeleccionado
    Nombre del juego elegido por el usuario, o `null` si canceló.

  - ### listaJuegos

    private JList<String> listaJuegos
    Componente visual que muestra la lista de juegos disponibles.

- ## Constructor Details

  - ### VentanaSeleccionJuego

    public VentanaSeleccionJuego(JFrame padre, GestorJuegos gestorJuegos)
    Construye y muestra el diálogo de selección de juego.

    La ventana es modal: bloquea la ejecución del hilo llamante hasta que el usuario pulse "Jugar" o "Cancelar".

    Parameters:
      `padre` - ventana propietaria sobre la que se centra el diálogo
      `gestorJuegos` - gestor del que obtiene la lista de juegos disponibles

- ## Method Details

  - ### estilizarBoton

    private void estilizarBoton(JButton btn, Color bg, Color fg)

  - ### accionSeleccionar

    private void accionSeleccionar()
    Guarda el juego seleccionado en la lista y cierra el diálogo.

  - ### accionCancelar

    private void accionCancelar()
    Establece el resultado como `null` y cierra el diálogo.

  - ### getJuegoSeleccionado

    public String getJuegoSeleccionado()
    Devuelve el nombre del juego que el usuario seleccionó.
    Returns:
      nombre del juego elegido, o `null` si el usuario canceló