Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Ayuda JPanel y JFrame

Hola a todos,

Quiero hacer un programa que tenga un Jframe, que a su vez contenga tres JPanel (que estarán compuestos de un label que me los distinga 1 y 2, y tres botones). Quiero que cuando pulse un botón de un JPanel, boton1, boton2 o boton3, me haga visible el Panel1, 2 o 3 respectivamente (el panel entero, no cambiar solo el label). No se si será muy normal lo que pido...

Soy muy novato, y consigo cargar el primer panel, pero no sé como decirle al JFrame que se ha pulsado el boton2 del panel1 (por ejemplo), y hacer invisible el 1 y visible el 2...

Estoy trabajando con el Netbeans, y he añadido un JFrame al paquete (con el layout manager de Cardlayout), y luego me he hecho tres JPanel con el label y los botones, son iguales excepto por el label, pero en un futuro me gustaria que fueran diferentes.

La cosa es que no consigo encontrar un ejemplo de lo que quiero, y no consigo aclararme... Si aparte de esto me recomendaseis alguna lectura o algo básico para poder enterarme de cosas, estaría también muy agradecido.

Me imagino que esto será muy sencillo, pero es que soy muy novato, lo siento :(

noviembre 13, 2014 | Registered Commenterjorl

Lo primero de todo: sobre la lectura, lo mejor es el Tutorial de Java. Ahí tienes un trail completo sobre Swing; yo lo miro a diario.

En cuanto a tu problema, me quedan algunas dudas de lo que quieres hacer. ¿Quieres algo así (que los botones estén dentro o fuera de los paneles no es muy importante, aunque lo que sucedería es que tendrías 9 botones, un juego por cada panel)?


+---------+
| Panel 1 |
+---------+
| Panel 2 |
+---------+
| Panel 3 |
+---------+
[B1][B2][B3]

¿O, por el contrario, quieres que un panel sustituya a otro en el mismo sitio?

En el primer caso, más que ocultarlos lo que harías sería cambiar su color, decoración, etc. para que no sean distinguibles del fondo. En el segundo, tendrás que usar un CardLayout.

Si tienes 9 botones, los tres botones que tienen que activar el mismo panel compartirían acción, de modo que tendrías tres ActionListener diferentes, y cada uno sería usado por tres botones.

Siento no ser más preciso, pero con algo más de información sobre el diseño que pretendes obtener te podremos dar respuestas más concretas.

noviembre 13, 2014 | Registered Commenterrickiees