mkyong examples example chooser java swing jframe multiple-instances

mkyong - jfilechooser java swing examples



Hacer mĂșltiples marcos en un solo programa (4)

Siempre me pregunté cómo puedo hacer un programa con múltiples JFrames. Quiero decir que solo quiero que una clase maneje todas las GUI y demás, pero ¿cómo puedo hacer esto? Muchos tutoriales dicen que hacemos JFrame heredando de JFrame. Pero, ¿y si quiero muchos marcos?

Ejemplo: Título de la aplicación en un marco con algunas opciones. El menú es un marco. La aplicación principal de trabajo es un cuadro Como en un juego.

Pero no estoy seguro si pertenezco a JPanel? Estoy completamente desconcertado con el 2. Solo quiero un fotograma que no se mueva, pero básicamente el contenido del fotograma está cambiando. Cuando hago clic en INICIAR, por ejemplo, cambiará al estilo de juego del marco.


Creo que lo que buscas es el diseño de la tarjeta :

Un objeto CardLayout es un administrador de diseño para un contenedor. Trata cada componente en el contenedor como una tarjeta. Solo se puede ver una carta a la vez, y el contenedor actúa como una pila de cartas. El primer componente agregado a un objeto CardLayout es el componente visible cuando el contenedor se muestra por primera vez.

Puedes ver cómo se usa aquí .

Este administrador de diseño le permite administrar situaciones donde su marco necesita ser compartido a través de varias funciones. En su caso, por ejemplo, podría tener una funcionalidad para manejar la sección de configuración del juego y otra para manejar el juego en sí.

Luego puede usar el administrador para cambiar entre estos elementos en particular.


estás buscando un JFrame con un CardLayout . Algunos antecedentes:

Un JFrame es la ventana física. Viene con una barra de título y tres botones: minimizar, maximizar y cerrar. Piense en esto como un marco de imagen.

Un JPanel es un "titular de contenido". Típicamente, pones tus otros componentes (botones, animaciones, lo que sea) en un JPanel, y luego abres ese JPanel en un JFrame. Usando nuestro ejemplo de marco de imagen, un JPanel sería el papel fotográfico que coloque en el marco de la imagen. Los otros componentes serían entonces los contenidos reales de la imagen, y lo que tiene al final es una buena imagen ... o en su caso, una aplicación.

Configurar JFrame para utilizar CardLayout esencialmente le permite tener múltiples JPanels dentro del mismo JFrame a la vez, mientras que solo muestra uno a la vez. Entonces, para su aplicación, tendría (al menos) dos JPanels: uno para el menú y otro para el juego. Cuando se inicia la aplicación, muestra el Panel de menú. Cuando el usuario hace clic en "iniciar", se cambia al Panel de juegos. El MenuPanel se pondrá en segundo plano y no se podrá acceder hasta que vuelva a llamarlo al primer plano.

Si, por otro lado, creas múltiples JFrames, tendrás dos o más ventanas físicamente separadas que se pueden tratar individualmente. Esto puede ser genial para el desarrollo del juego. Aunque lleva más tiempo construir y vincular la GUI para la segunda ventana, entonces puede hacer que esa ventana afecte la configuración del juego en tiempo real (índice de tiro, fuerza de bala, velocidad del jugador, etc.)


también puede usar Desktopane () y InternalFrame () para varios cuadros. Marco interno bastante similar a Jframe, pero necesita establecer Visible (verdadero) o Mostrar () cada vez.


Cualquiera que sea el IDE que esté utilizando, puede crear múltiples JFrames en el mismo paquete y tener códigos separados para cada uno de ellos.

Si desea vincular cada cuadro, deberá crear instancias de cada JFrame. por ejemplo, si cuando se presiona el botón, necesitamos invocar un nuevo Marco (que ya hemos creado)

NewJFrame1 frame1=new NewJFrame1(); frame1.setVisible(true);

entonces puedes decidir qué hacer con tu JFrame actual. por ejemplo: (Ocultar, Cerrar)