2009-02-12 17 views
10

Soy relativamente nuevo en Java (específicamente swing) y recientemente he estado haciendo algunas aplicaciones bastante simples, aprendiendo sobre la marcha. El último tiene muchos componentes de formularios, como JLabels, JTextFields, JButtons, etc. Todos se colocaron en NetBeans utilizando un generador visual. Debo decir que realmente no estoy usando NetBeans y que realmente he estado diseñando la GUI y copiando el código directamente a Eclipse.GroupLayout: ¿Vale la pena aprender?

Mi pregunta es: ¿Vale la pena obtener una muy buena comprensión de GroupLayout y la codificación a mano (y por lo tanto tener más control sobre mi GUI) o simplemente continuar como está?

Respuesta

11

Yo diría que vale la pena tomarse un tiempo para entender GroupLayout solo porque siempre es una buena idea entender lo que hace su IDE. Saber lo que sucede detrás de escena realmente te hace más flexible, porque si terminas en una situación en la que no tienes acceso a Netbeans, sabrás cómo replicar el diseño que habría producido para ti. Además, después de haber obtenido una buena cantidad de experiencia, probablemente terminará ahorrando tiempo en general. A menudo puede desarrollar una GUI simple más rápido a mano que utilizando un editor visual, especialmente teniendo en cuenta el tiempo que le lleva copiar y pegar el código de Netbeans a Eclipse.

Y, por supuesto, aprender a usar GroupLayout a mano también le facilitará la transición a cualquiera de los otros gestores de disposición que Java ofrece, lo que a su vez puede conducir a un código más simple e incluso ahorrar más tiempo.

+0

Estoy pensando esto también; Puede que me encuentre en una situación en la que no tenga la conveniencia de copiar el código de NetBeans, pero donde necesito hacer una GUI relativamente compleja, y en los casos en que necesito hacer una GUI más simple, no necesito recurrir a NetBeans. , en lugar de construirlo en un administrador de diseño más simple. – Ciaran

10

GroupLayout no fue diseñado realmente para la codificación a mano; es mucho, mucho más detallado que cualquier otro administrador de diseño (excepto posiblemente GridBagLayout). Como dice que es nuevo en Swing, le sugiero que comience con los administradores de diseño básico (BorderLayout y FlowLayout); puede usarlos en NetBeans haciendo clic derecho en el panel o marco y seleccionando "Establecer diseño". Después de que estés familiarizado con ellos, te sugiero que visites MiGLayout.

Para responder a su otra pregunta: Creo que el diseñador de formularios NetBeans es similar a una calculadora; es una herramienta maravillosa si ya conoces los conceptos básicos, pero nunca aprenderás nada si solo lo usas como una muleta.

+0

Creo que SpringLayout es aún más detallado. ;) He usado el GroupLayout que viene con LWUIT y no fue tan malo, pero tampoco fácil. Me gustó JGoodies FormLayout, y como MiG Layout es su sucesor, recomiendo encarecidamente MiG. De todos modos, es bueno saber también los diseños básicos. –

+0

Ya estoy familiarizado con BorderLayout, pero prácticamente GroupLayout es lo que creo que es mejor para la aplicación que estoy construyendo actualmente. En cuanto al uso de NetBeans como una muleta, simplemente no me gusta el IDE y me resulta innecesariamente complicado en algunas partes – Ciaran

1

La mayoría de los gestores de disposición más complicados no están destinados a ser codificados a mano. Puedes hacerlo, pero es probable que tengas problemas para entender tu propio diseño dentro de unos meses. GroupLayout no es una excepción, peor no es para nada intuitivo, tienes que contorsionar tu mente forzando tu diseño en términos de GroupLayout.

En mi opinión, estos administradores de diseño no valen la pena aprender. GridBagLayout es el peor de todos. Tiene más opciones de las que posiblemente pueda imaginar y nunca parecen hacer lo que cree que hacen. MiGLayout es muy potente, razonablemente intuitivo y, en general, hace lo que crees que es, pero seguiré argumentando que es demasiado poderoso y complicado para él y para el propio programador. GroupLayout no es tan poderoso, no es tan intuitivo y no vale la pena.

Mi consejo durante años de diseñar Java GUI y mantenerlos es aprender y utilizar el gestor de diseño más poderoso que pueda dominar en dos horas y que nunca olvidará, luego diseñe su GUI con contenedores anidados usando este diseño manager y el BorderLayout/GridLayout/FlowLayout/BoxLayout básico.

+2

http://madbean.com/anim/totallygridbag/ –

+4

-1 GroupLayout me parece muy intuitivo. Claro, es detallado, pero estamos hablando de Java. Simplemente lea la documentación y siga [este ejemplo] (http://download.oracle.com/javase/tutorial/uiswing/layout/group.html). Después de eso, comience a usarlo en proyectos de GUI de "vida real". Creo que descubrirá que en realidad no es tan malo como parece al principio. – bcat

+2

-1 Estoy de acuerdo con @bcat. También me gustaría tomar un tema directo al consejo en el último párrafo. Los mejores resultados siempre provienen del dominio que lleva más de dos horas. Nunca olvidaré cómo usar 'GroupLayout' siempre que lo siga usando. Tampoco entiendo cómo 'GroupLayout' podría ser más complicado que usar ** contenedores anidados **. Así es como lo haría si alguien me dijera que lo haga complicado. –

3

GroupLayout vale la pena aprender a usar mediante programación.

Uso GroupLayout como mi diseño predeterminado en casi todos los paneles que creo que utilizan componentes Swing estándar. Encuentro que los resultados siempre son muy agradables a la vista y cambian de tamaño muy bien.Siempre he establecido estas opciones:

groupLayout.setAutoCreateGaps(true); 
groupLayout.setAutoCreateContainerGaps(true); 

El uso de este diseño en repetidas ocasiones no sólo me ha dado diseños de excelente aspecto, pero me da la experiencia de bajo nivel necesario para poder juntar algunos paneles complicados con un número de componentes que se desconocen en tiempo de compilación. También descubrí que cuando el número de componentes es dinámico, puedo diseñar todos los componentes y luego activarlos y desactivarlos con setVisible(boolean) sin volver a crear los grupos horizontales y verticales.

0

Si te inclinas a un estilo de programa VB, pasas tiempo en GroupLayouts. De lo contrario, intente comprender GridBagLayout Manager con ejemplos adecuados. Es lo mejor para aquellos que quieren que cada componente de GUI esté bajo nuestro control de lápiz (debemos escribir y no el IDE). Un buen desarrollador de java debe pasar tiempo en objetos de interfaz gráfica de usuario y objetos comerciales y debe saber cómo separarlos. L.Sankaranarayanan.