modality - Construyendo una GUI en Java
popup modal java (23)
Ambos: use un editor WYSIWYG para hacer rodar la pelota, pero al final del día deberá manipular sus controles y, en algunos casos, crearlos programáticamente en tiempo de ejecución. Eclipse tiene una variedad de editores gratuitos como complementos. Vaya a eclipse.org y busque en la lista de complementos.
¿Qué mecanismo prefiere para crear una GUI: desde cero o usar el software de creación de GUI?
Comencé codificándolo manualmente usando Swing. Ahora uso editores WYSIWYG, pero creo que es importante saber qué hay detrás del editor. También es posible que necesite actualizar el código manualmente, los editores WYSIWYG a menudo no pueden hacer exactamente lo que usted quiere.
De hecho, disfruto la creación de GUI con NetBeans GUI Builder; La cuestión es que es bastante personalizable: le permite cambiar el código utilizado para la generación automática y el código generado automáticamente [no es necesario para los juegos de palabras] (que es necesario para los componentes personalizados), también permite un manejo de eventos "fácil" y vinculante. Y NetBeans GUI Builder no está restringido a GroupLayout sino que le permite elegir qué LayoutManager usar (una configuración un tanto oculta en el cuadro de diálogo de propiedades del formulario).
Pero no siempre es la mejor opción; como ya han dicho otros: MiG Layout es una buena opción cuando necesitas tener un control total de tu aplicación, conociendo cada JLabel, cada JButton, etc.
Debo confesar que prefiero el constructor de GUI de Netbeans por la facilidad de uso y la vista WYSIWYG. Pero también creo que no importa si ha creado el Código de GUI a mano o con un Diseñador de GUI; agregar controles / componentes personalizados funciona de forma dinámica con ambos, haciendo esto y eso funciona con ambos, etc. Lo único que importa es que funcione.
(Desde mi punto de vista, no veo un punto en la codificación de una GUI manualmente si se puede hacer más rápido con un GUI-Builder, ya que no veo por qué uno debería molestarse en codificarlo manualmente sin algún tipo de beneficio)
Depende de sus necesidades. Algunos software de creación de GUI funcionan realmente bien con aplicaciones simples, sin embargo, si su cliente requiere muchos componentes personalizados, es posible que los creadores de GUI de terceros no funcionen.
Además, depende de la cantidad de formas y la complejidad de las mismas. Si necesita crear un formulario para cada tabla en la base de datos, por ejemplo, un generador de GUI de terceros puede ser más rápido y más barato.
En mi experiencia, realmente varía de un proyecto a otro.
El Editor Visual de Eclipse es una gran opción, porque el código que genera es muy sencillo y no hay magia oculta. Además, puedes hacer cambios a mano y el editor los reflejará.
Encuentro que los constructores de GUI a menudo pueden complicar las cosas y prefiero saber qué estaba pasando cuando se construyó la GUI que utilizar las variables creadas. Creo que, como no sé todo acerca de Swing y los gestores de diseño, tengo miedo de generar un código del cual no tengo una idea o no sé realmente cómo funciona.
Cuando estaba haciendo scripts simples utilizando AutoIt, sabía que solo se utilizaría en máquinas que tuvieran pantallas suficientemente grandes, usaría el editor de formularios GUI. Sin embargo, con las aplicaciones comerciales y las que pueden ejecutarse en máquinas con cualquier especificación, generalmente me abstendría de los constructores de GUI.
Dicho esto, creo que mi decisión puede estar influenciada por mi falta de conocimiento sobre los administradores de diseño y quizás en el futuro comience a abrazarlos más, ya que no veo nada de malo en usarlos cuando tenga una comprensión completa. A diferencia de lo que algunos programadores pueden decir, es solo una forma perezosa de crear una GUI si usa el software con intenciones perezosas, y no de manera eficiente como las aplicaciones fueron escritas.
Para responder directamente a la pregunta original, el 99.5% del tiempo escribiré la GUI desde cero.
Eso depende de las razones por las que creas la interfaz de usuario,
Encontré que hay dos razones para hacer UI:
Lo primero es para los clientes, en estos casos, usted desea que la interfaz de usuario sea pulida y que se maneje realmente bien en proyectos como este. El núcleo o la esencia del proyecto es la propia interfaz de usuario.
En estos casos, por lo general, es lo mejor hacer el código a mano para su interfaz de usuario porque probablemente es un código no trivial.
El segundo motivo suele ser una interfaz de usuario rápida y sucia en la que el núcleo del programa es otra cosa y la interfaz de usuario se crea generalmente para los aspectos de control de su aplicación principal y usted es el cliente principal.
En estos casos, lo mejor que puede hacer es hacer que la UI sea lo más rápida posible, ya que no quiere "perder" tiempo trabajando en ella y es más legítimo utilizar editores WYSIWYG.
Habiendo creado Java GUI extensivamente, puedo asegurarle que el proceso es a menudo doloroso. Soy consciente de que la fuerza de Java no reside en su GUI, pero me sorprende que no se haya lanzado una herramienta de creación de interfaces gratuita y decente.
A veces usaré la herramienta Visual Builder de Eclipse para maquetas rápidas y sucias. Su generación de código es un poco temible en mi humilde opinión. Creo que el Editor visual de Netbean es el mejor disponible en este momento (gratis de todas formas); sin embargo, me encuentro a mi misma mano con el código GUI para diseños consistentes multiplataforma. Si está decepcionado con estos editores de GUI gratuitos (como yo), honestamente, solo use una biblioteca de diseño (como MIG) y hágalo usted mismo. Será lento al principio, pero tendrás mucho más control y menos nuevas ediciones.
Intenté usar el complemento Visual Swing de Eclipse, pero en algunas ocasiones, el código que generó simplemente desapareció y me quedé con una pantalla llena de errores. En todas las aplicaciones GUI que escribo, uso Netbeans, aunque odio el código generado cuando uso GroupLayout. Sin embargo, si el código de diseño no es su preocupación, creo que estará muy satisfecho con la velocidad de desarrollo que le ofrece. Lo único que tendrá que hacer es implementar la lógica de eventos y otra lógica que pueda necesitar.
Mi empresa utiliza Netbeans para las GUI y eclipse para la programación regular.
Hemos buscado, pero no hemos encontrado ninguna otra herramienta (gratuita o al menos barata) que haga GUI tan buena como NetBeans.
Solía ​​escribirlos desde cero con un editor de texto plano ...
Mi opinión personal es nunca utilizar editores visuales . Hasta que haya un solo estándar para la creación de GUI en Java , se encontrará vinculado a un IDE . El mejor IDE para construir la GUI de Java ha cambiado bastante en los últimos 10 años (me pregunto cuántos proyectos se vieron afectados por una sobrecarga de mantenimiento masiva al cambiar de JBuilder por ejemplo).
Para la mayoría de las aplicaciones, el diseño real del código GUI es probablemente un 5-10% de la cantidad total de tiempo que probablemente pasará escribiendo la aplicación en su totalidad. Por lo tanto, incluso reducir a la mitad esto mediante el uso de un diseñador no es realmente ahorrar mucho en el gran esquema de las cosas.
Tomando esto junto con la falta de flexibilidad y un mantenimiento más complicado, casi siempre es mejor escribir la GUI a mano.
Mire el Editor Visual para Eclipse
Aún querrás entender lo que el editor está haciendo por ti.
Necesitas saber cómo funciona Swing para poder hacer que las cosas funcionen correctamente. Nada como construir a mano para aprender eso :)
ENTONCES el constructor GUI de Netbeans es bastante bueno.
Edición: Recomiendo encarecidamente ir a través del Tutorial de Java Swing Trail - http://java.sun.com/docs/books/tutorial/ui/index.html
No hay nada de malo en usar un Diseñador de GUI cuando: Entiendes lo que hace el IDE y lo que genera, cómo personalizar la salida del IDE Entiendes el código realmente generado por el IDE
Comprender al menos los conceptos básicos de Swing es importante. Imagina el siguiente escenario que sucede con demasiada frecuencia.
Q:"I have 10 years of experience writing swing applications"
A:ok
Q:How would you debug this code
A:Oh wait, there''s no Netbeans form file??? You guys are not high tech!
Q:Hum.. you don''t understand it?
A:Of course not, it''s like machine code, you need to refractor it all and use an IDE!
Para empezar, siempre me parece una buena idea que un constructor de GUI termine en una situación en la que estoy perdiendo el tiempo arreglando las cosas a mi manera y no a la del IDE y haciendo que se adapten a ellas. ¡Y no me hagas empezar con el desordenado código que generan los constructores de GUI! Por lo tanto, a menudo es más eficiente construir desde cero; al menos para mi...
Prefiero codificar manualmente la GUI para poder tener un control completo. Para diseños complejos usaré JGoodies Form Layout . Su sintaxis para especificar el diseño facilita dibujar la GUI en papel y luego transferirla al código.
Probé el generador de GUI de Netbeans y me impresionó lo fácil que fue usarlo. Luego miré el código que generó usando GroupLayout y decidí que al ir de esa manera básicamente te encerras en Netbeans, que era algo que no quería hacer.
Realizo una prueba de manejo del modelo de la interfaz de usuario, de modo que tengo la funcionalidad de la interfaz de usuario incluida en una clase que está completamente desconectada de la biblioteca de la GUI y se puede probar fácilmente de forma aislada. Luego creo una capa de envoltura delgada en la parte superior del modelo, de modo que los controladores de eventos de la GUI son en su mayoría de una sola línea que delegan en el modelo de interfaz de usuario.
He estado utilizando principalmente el constructor de GUI de IntelliJ IDEA (usando el administrador de diseño de formularios de JGoodies). Ha sido bastante práctico para diseñar componentes en un diseño estático. Pero creo que, por ejemplo, con MiGLayout es bastante fácil escribir el código de diseño de la GUI a mano, por lo que no es necesario un generador de GUI, y ayuda a evitar el bloqueo de herramientas. Y los diseños dinámicos de todos modos tendrán que ser escritos a mano.
Pero antes de escribir cualquier código, primero diseño y pruebo un prototipo de papel de la interfaz de usuario, para tener una visión clara de lo que se necesita hacer.
Realmente depende de lo que intenta lograr con la GUI. Cuando estaba reuniendo ideas para una clase de informática y funcionalidad de prueba, el editor WYSIWYG de Netbeans fue excelente, ya que genera automáticamente una gran cantidad de código para usted. Sin embargo, descubrí que tiendes a tener un mejor control con hacerlo a mano (en Java) que aprendiendo Netbeans.
Si desea crear la última GUI de Java, recomiendo el complemento Eclipse llamado "Jigloo GUI Builder", que puede generar un código Java limpio y fácil de mantener. Si solo desea crear la GUI rápidamente para su revisión, puede probar la herramienta de creación de prototipos UI como "ForeUI".
Si la pregunta es sobre el desarrollo de GUI usando Swing, entonces IMO es mejor codificar todo manualmente sin una herramienta WYSIWIG.
Para que un diseño / codificación manual de la interfaz de usuario sea eficiente, se debe utilizar un administrador de diseño realmente bueno. MigLayout es uno de esos gestores de diseño. Desde que empecé a usarlo, nunca volví a mirar las herramientas WYSIWIG: una hoja de papel, un lápiz, MigLayout y obtienes un control total sobre tu diseño y código.
También herramientas como Balsamiq simplifican la realización de simulaciones de GUI para realizar prototipos rápidos si el enfoque de lápiz y papel no es adecuado.
Si me permitiera elegir entre NetBeans y By-Hand, definitivamente elegiría Hand-Hand. Nunca me convenció realmente el enfoque del constructor de GUI de NetBeans. Al menos la última vez que lo usé, se basaba en algunos archivos de sidecar propietarios ...
Si quieres una gui compleja, usa algo como netbeans para construirla y crear todos los eventos. Si está buscando una interfaz gráfica de usuario bastante simplista, entonces construir una a mano sigue siendo una opción.
Uso constructores de GUI para crear prototipos de diseños rápidamente y cosas así. Pero cuando se trata de construir la GUI de producción real, la codifico desde cero. No me opongo moralmente a los desarrolladores de GUI, pero prefiero el mayor control sobre mi código que obtengo al escribirlo a mano.
Al igual que con cualquier herramienta de generación de código, IMHO, no debe usar un generador de GUI hasta que al menos comprenda el concepto; en este caso, los administradores de diseño de Swing son particularmente difíciles.