Duda JPanel

Iniciado por exploiterstack, 14 Agosto 2015, 10:02 AM

0 Miembros y 1 Visitante están viendo este tema.

exploiterstack

Hola que tal comunidad...

Ando trasteando las interfaces gráficas que ofrece Java(SWING y AWT) y me surge una duda respecto a los paneles. Por ejemplo, yo creo una clase que extiende de JFrame y apartir de ahí yo creo una serie de componentes(JLabel, JButton...) luego los añado por medio del método add(componente).

Mi duda viene que en realidad me deja añadir los componentes al JFrame sin necesidad de crear ningún JPanel? lo que me hace pensar que al extender la clase JFrame ya trae un panel por defecto que me permite añadir los componentes de manera implícita.

Esto es cierto?

omar_cdg

Hola, no. Te explico. Cuando vos creas un jrame, viene por defecto con un flowlayout. O sea que a menos que indiques algo diferente colocará tus componentes por defecto. Y los ira añadiendo al frame en el orden que aparezcan el en programa.
Por otro lado puedes crear los jpanel y dentro de cada jpanel añadir componentes. Luego añadirás esos jpanel al frame donde te convenga. Dándole un diseño "a tu gusto" , ya sea con un gridlayout,  o , boxlayout, borderlayout etc...
Digamos. Puedes darle al frame un borderlayout y a su vez a un jpanel un diseño boxlayout para colocar por ejemplo, botones, y ese panel de botones puedes colocarlo south,north,etc.. No se si me explico. Cualquier cosa. Pregunta. Si puedo te responderé. Echale un ojo a la documentación javax.swing. suerte

exploiterstack

Antes de nada decir que he estado de vacaciones y no he podido realizar las correspondientes comprobaciones y menos poder contestarte omar_cdg, así que te ruego perdón.

Creo que me exprese mal, lo que quise decir es:

Cuando creo un JFrame(ventana, marco, como quieras llamarlo...) este ya trae un container por defecto? Es que no llego a entender claramente como funciona esto ya que al JFrame se le pueden añadir componentes(botones, label...) a pelo haciendo uso de el método add(componente) luego también se le pueden añadir componentes con el mismo método a un JPanel? y por ultimo se le puede añadir el JPanel al container del JFrame?

¿Cuantos "container" existen exactamente?

Por otro lado he leído que añadir componentes directamente al JFrame es una mala practica ya que seria como dibujar en la propia mesa del pintor y no sobre el papel que hay encima.

Cualquier ayuda sera bienvenida!

exploiterstack

En verdad nadie puede ayudarme?

omar_cdg

#4
como ya te explique jframe es un container y si agregas por ejemplo tres botones los colocará en forma horizontal en el orden que los hayas agregado en el programa (con add). ya que usa por defecto el gestor FlowLayout. No sé que es lo que no entiendes, no es tan dificil.
Y sí añadir componentes sin un panel es mala practica, siempre es mejopr crear paneles y luego añadir los botones, labels a esos paneles y los paneles al frame