AbsoluteLayout, que tan bueno es?

que tal hace unos dias estaba revisando, la forma de crear aplicaciones graficas pero a puro codigo, sin utilizar ningun IDE, para unos talleres entre alumnos ahi en mi universidad,

bueno ya me pase a leer, los layout para java los que trae y viendo a NetBeans como trabaja en la parte grafica me di cuenta que utiliza GroupLayout, la verdad es algo bastante engorroso eso y nada intuitivo bueno al menos para mi.
pero tambien de NetBeans descubri esta libreria llamada AbsoluteLayout que trabaja de una manera bastante facil al menos en mi opinion para tratar el aspecto grafico botones,labels etc,

por ejemplo si creo una etiqueta que se llame Nombre simplemente se pone algo asi. en un JPanel

 

lo veo bastante facil solo es cuestion de ir jugando con las coordenada x,y y nada mas..

ahora la pregunta que tan bueno es y recomendable usar? comparadolos con los layouts q trae java, quitando al GroupLayout que se me hace demasiado complicado xD

aqui encontre la libreria

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Mmhh es dificil saberlo

Mmhh es dificil saberlo porque nunca lo he usado, pero a juzgar por lo que escribiste no parece buena idea.

Puede funcionar para un par de componentes, pero el problema viene cuando quieres poner más componentes y estos tienen se presentan en diferentes resoluciones o espacios.. Si usas el AbsoluteLayout, tu imagen siempre se verá igual y eso puede afectar.

Por ejemplo, que pasa si haces la pantalla más grande? Que pasa si la haces más chica? Con Absolute layout nada va a cambiar ( y cuando hagas la pantalla más grande puede quedar todo en una orilla , cuando la hagas más chica va a quedar todo encimado )

Tiene su chiste eso de los LayoutManager, pero lo mejor sería que entendieras como funcionan y luego tomar un GUI Builder como Matisse de NetBeans o el que trae IntelliJ para no hacer el layout a mano, sino con esa herramienta:

No me parece buena idea usar AbsoluteLayout salvo para cieeeras cosas muy especiales ( se me ocurre poner un botón encimado o algo así )

Si estas usando Netbeans

Si estas usando Netbeans entonces te recomiendo que te quedes con Free Design. Es adaptativo, mas flexible y muy sencillo de usar aunque tienes que asegurarte que tus componentes reaccionen apropiadamente a los cambios de tamaño en las ventanas.
Ya si tienes mas experiencia con layouts entonces te recomiendo mas bien el GridBag Layout.

setLayout(null)

Es casi cómo usar un setLayout(null).

Personalmente siempre batallé usando los layouts y demás. Se me ocurrió la solución fácil de siempre poner setLayout(null), con esto tu puedes definir la posición de los botones a tu gusto...El problema es que cuando hacer grande la pantalla, los componentes no se ajustan a ella y pues se ve raro. Y cuando haces la pantalla pequeña dejan de verse algunos componentes (por ejemplo si definiste un botón en 300,200 y tu redujiste la pantalla a 100 x 100, pues ya pierdes ese botón.

La verdad que yo conozco muy pocas personas que le saben bien a eso de los Layouts y que les quedan las aplicaciones tal y cómo ellos quieren. Desafortunadamente yo mejor me dediqué a buscar alguna manera de usar porcentajes de pantalla...es casi como implementar tu propio Layout, así que nada; dejo la pantalla siempre a una resolución de 780 * 500 para pantallas pequeñas, 1000 x 800 para pantallas medianas y 1200 * 600 para pantallas grandes :P. Esta es una de las cosas que son más simples en .NET que en Java, pero en fin.

No he aprendido a usar los Layouts porqué los proyectos que hice de escritorio eran para ayer a las 9 a.m. (si eso de ser jefe y que le digan: "pues necesitamos para el próximo mes un reloj checador, un blog, una aplicación web de monitorización y una aplicación web de manejo de documentación"...en eso llega tu jefe y dice: "¿qué si queda en un mes?" y si respondes: "no", el te dice: "mmm, llega hasta donde puedas, yo le justifico al cliente"; lo que es un: "pues pobre de ti si no terminas"). y cómo de ahí la mayoría de proyectos han sido web (en donde usas posiciones relativas en base al ancho de la pantalla por medio de porcentajes) pues ya no tuve la necesidad, pero si la curiosidad.

Imagen de genitalico

@OscarRyz .. si en lo que

@OscarRyz .. si en lo que dices hay un problema como lo menciono @wishmaster77 el tema de redimencionar la pantalla con AbsoluteLayout se quedan tal y como estan, con lo que tendria que definir un tamaño de ventana y poner el Resizable a false, para que todo funcione de otra manera se pierden algunas cosas con el cambio de pantalla...

probare con los otros layout, la idea que yo tenia es aprender a crear interfaces graficas algo mas HardCore solo eso,

ahora si me podrian dar algunos bueno layout o ejemplos para empezar, o combinaciones de estos..

salu2

... la idea que yo tenia es

... la idea que yo tenia es aprender a crear interfaces graficas algo mas HardCore solo eso..

Yeah! : :)

El GroupLayout es sin duda el mejor, pero yo también lo encuentro algo confuso, así que lo mejor es no pelearse con el layout ni intentar resolver todo con uno solo. Lo mejor es mezclar, flows, con grids, un poco de gridbag, y etc. Incluso habrá algunas cosas donde el absolute layout tenga sentido, pero no para todo. Creo que por ahí la va la clave.

Cuando tengas esa práctica y necesites usar un GUI Builder, verás que será mucho más fácil porque conoces como funciona por debajo.

En Java7 se incluyó un nuevo "componente" ( es más bien una capa ) que se llama JLayer y esta muy interesante, revisa este link y el video que tiene adjunto...

HAY ALGO MEJOR QUE EL GridBagLayout?????????

Hola, camaradas.. discutiendo con un colega ¿que es mejor? si el AbsoluteLayout ó simplemente "null" pues.. null es para mi la mejor opcion si lo que quieres es posicionar tus objetos graficos(controles) a pie.. Para mi el AbsoluteLayout es bastante inutil, aparte que para una interfaz o programa simple no te gustara el agregar los 40kb extra de esa libreria del NetBeans..

¿Existe algo mejor que el GridBagLayout??? porq la verdad llevo años usando este gestor y hasta el momento no encontré una ocasión en la que los controles no quedaran donde YO! quiero y haciendo lo que QUIERO!.. que se estiren, que se ajusten.. que se alinien! como yo deseaba etc..
Quizá este Layout es de los mas incomprendidos pero es el único con el que te sientes a gusto programando la interface a pie! y no solo eso aun codificando a pie es muy veloz armar una GUI. Al momento el NB esta en la ver 7.0.1 y trae un "güisar!"(inutil) para este Layout asi que no lo usen.

LA ANALOGÍA DEL GBL ES POSICIONAR LOS CONTROLES UN UNA REJILLA, MATRIZ, CUADRICULA ó como le quieras llamar..
1. Por si quieres hacer unas pruebas lo mejor es que hagas una cuadricula en un papel y vayas definiendo la posición y el ancho que tus controles tomaran.
2. El GBL necesita un objeto GridBagConstraints c = new GridBagConstraints() es este objeto el que le dice al Layout donde en x,y va el control y que espacio de la cuadricula ocupa.. entre otras cosas..
3.Puedes ocupar "Areas rigidas" y "Pegamento" estas clases las puede entrontrar dentro de la clase BoxLayout.. con esto haras maravillas..

Aqui te dejo la informacion que necesitas:
GBL:

Pegamento y Areas rigidas estan casi al final de esta pagina:

Y POR CIERTO! El GroupLayout es asi de miserable ocuparlo porque lo diseñaron para que lo ocupe la computadora! inicialmente eso lo dice aqui:

" is a layout manager that was developed for GUI builders" es un layout que fue creado para programas constructores de interfaces.. osea NetBeans, Eclipse, Intelli Idea... etc..

Saludos..

@gnexus A mi me gusta más el

@gnexus A mi me gusta más el GroupLayout sobre el Gbl pero sí es más difícil de usar.

Estaría bien hacer un ejercicio no crees? Bueno será en otra ocasión

:)

Imagen de Nopalin

Pues FormLayout de jgoodies

Pues FormLayout de jgoodies es buenisimo.

AbsoluteLayout vs Null

Me pregunto cual será la diferencia entre AbsoluteLayout y null, el comportamiento parece ser el mismo.

Imagen de paranoid_android

Algunas ideas

Hola. Usar las interfaces gráficas suele ser difícil porque el requisito normalmente es que solo modifiques mediante la herramienta y ya sea que tu u otra persona lo necesite terminaras con pantallas que no logras visualizar.
Pero se me ocurre que podrías diseñar la pantalla y antes de visualizarla cargar sus valores reales para la resolución que necesites ya sea fijos o parametrizados. Así podrían convivir ambos mundos.

Sé que no es la misma tecnología pero puedes darte una idea como piensan en Android.
http://developer.android.com/training/multiscreen/screensizes.html
Saludos.