He escrito un par de interfaz gráfica de usuario utilizando Swing y sé acerca de MVC, pero nunca he encontrado una buena manera de organizar mi código de alguna manera. Lo que estoy buscando es algo así como la estructura de carpetas que maven presenta para cada nuevo proyecto. Otro ejemplo es el de rieles, donde MVC se introduce a través de la estructura de la carpeta de forma automática. Hay algo similar para el Swing?

También sería agradable ver a un libro que describe el desarrollo de una mayor Oscilación de la Aplicación. Todo lo que puedo encontrar son los libros sobre diseño de-lineamientos donde el diseño se refiere a la apariencia de la aplicación. Otros Swing libros (O’Reilly) describir en detalle todos los componentes swing, pero donde es cualquier información acerca de la imagen grande?

Hay buenos ejemplos de un swing gui, donde se diría que «Esa es la forma de organizar el código/carpetas/paquetes para el swing!»?

EDIT: he encontrado el siguiente sitio http://www.ibm.com/developerworks/java/tutorials/j-springswing/section7.html que describe el uso de la primavera, mientras que la creación de una interfaz gráfica de usuario. Es un muy viejo ejemplo y que no responde a mi pregunta, pero es un paso en la dirección correcta. También menciona la Primavera de RCP, pero no estoy seguro de si podría ser la solución.

EDIT2: yo todavía no encontrar mejores respuestas. ¿Alguien sabe un ejemplo de un ideal estructurado Swing GUI que es de código Abierto? ¿Alguien sabe de un libro, que describe? Y si no para el Swing, entonces tal vez para interfaz gráfica de usuario en general?

  • Me temo que no existe un recurso que responde a esta pregunta como un todo. En su lugar, usted tendrá que comprobar varios (muchos) de los recursos en la web, describiendo un aspecto diferente. También puede comprobar los ejemplos concretos de las aplicaciones Swing (open source) y ver cómo se organizan. Lo que es realmente importante, desde mi punto de vista, es la 3ra parte de las herramientas que usted quiere utilizar (e.g diseños, marcos, tablas, controles, bus de eventos, DI, inyección de recursos…); hay realmente un montón de ellos, imposible enumerar aquí. Como punto de partida, puedes echar un vistazo en mis ENTRAÑAS-GUI proyecto.
  • Podría dar un link? Y, la última vez que revisé (más de un año atrás) había más bien escasa documentación. Quiero decir, las TRIPAS-GUI es increíblemente lleno de ideas útiles, pero tenía que encontrar por estudiar cuidadosamente su código. Una documentación general sería un gran ahorro de tiempo.
  • aquí está el enlace: kenai.com/projects/guts/pages/Home. La mayoría de la documentación está en el javadoc, que es, creo, bastante amplia; en particular, usted tiene que echa un vistazo a la descripción del paquete de la parte, que es mucho más que una sola frase (al contrario que en muchos otros proyectos). Además hay algunos ejemplos de aplicaciones de SVN que son buenos puntos de partida.
InformationsquelleAutor bln-tom | 2011-06-07

4 Comentarios

  1. 12

    Aunque es Groovy, no Java, yo le aconsejo que eche un vistazo a Griffon, que es un «Grails para el Swing«.

    Se impone una estructura dada (en términos de los directorios y de los patrones, MVC en particular) para todas las aplicaciones creadas con él.

    Yo creo que puede dar buenas ideas en general, aunque tendría que realizar alguna pequeña adaptación a Java.

    Además, por favor tenga en cuenta que Griffon también admite la Aplicación de construcción en Java, y también puede proporcionar a los «arquetipos» para que, así, se puede comprobar que así.

    • Esta respuesta parece ser la más cercana a lo que he buscado, por lo que la recompensa es el tuyo. Aún así, no estoy realmente satisfecho. Yo pensé que en todos estos años de Swing-Desarrollo, no debe ser más común de las mejores prácticas y menos de hacking. Parece que todo el mundo ha tenido que inventar la rueda de nuevo a la hora de crear un Swing GUI.
    • En la segunda tu comentario. Sin embargo, ser conscientes de que hay un montón de recursos en la web direccionamiento individual de Swing aspectos (o más general de IU aspectos, aplicable a las aplicaciones Swing). Esta fue también una de las motivaciones para la creación de las TRIPAS-GUI proyecto, aunque depende de Guice, ayuda (ayudará a) empezar a escribir aplicaciones fácilmente y proporciona ejemplos que se pueden seguir. Incluso creo que en la versión oficial, voy a añadir algunos maven de los arquetipos que crear la estructura del proyecto para usted (además de un par de clases para empezar).
  2. 8

    Usted puede leer Un Swing Introducción A La Arquitectura De. Pero cuando lo hago más grande de las aplicaciones Swing yo no los organizan de la misma manera como yo lo hago cuando se hace de desarrollo web. Yo simplemente organizar mi Swing aplicaciones en partes funcionales. E. g. si la aplicación tiene cuatro fichas con formas y tablas, me puse los componentes de una ficha en un solo paquete. Entonces por lo general termina con un par de implementaciones personalizadas de AbstractTableModel que los formularios y tablas de interactuar con. Y la Modelo mantiene una caché de los datos y se comunica con la base de datos.

    En mi último golpe de la aplicación, la he usado Akka actores para simplificar las operaciones de roscado. Entonces yo tenía todos mis componentes Swing ejecutado en la EDT-hilo y se comunicaban con un Objeto de Acceso a Datos que era una costumbre Actor. Entonces yo también tenía un par de TimerTask que sincroniza los datos de la base de datos sobre servicios de Internet, pero nunca se ejecutan en la EDT, que sólo se comunicaba con el DAO, (mi Actor).

    • Ya sé que el Swing introducción a la arquitectura, pero no es realmente ayudar a mí aquí. Sin embargo, su manera de organizar paquetes, parece ser parte de la solución de rompecabezas. ¿Qué hacer con los componentes que aparecen en más de una ficha?
  3. 6

    Web-desarrollo de las fuerzas a ciertos fuente de recursos y diseños. Este no es el caso con las aplicaciones Swing. Aquí usted puede utilizar el diseño que se adapte a sus objetivos de la mejor.

    Usted va a ser mucho más productivo si se usa algún IDE. NetBeans es la elección perfecta para el Swing. NB da algunas restricciones sobre cómo almacenar sus clases. No es una «Fuente de Paquetes» en la carpeta que contiene los Paquetes de Java y una «Prueba de Paquetes» para la correspondiente prueba de JUnit clases si el uso de JUnit, que yo aconsejo que hagas.

    En caso de usar el modo de Hibernación, usted debe pegarse a sus convenciones, construir un lo que sea.de la entidad y de lo que sea.util y los archivos XML de configuración deben estar en el ‘default’ del paquete.

    Cualquier otra organización de estos paquetes es hasta el programador. Puedo hacer un paquete con el JFrame que se ejecuta todo el show. Y un paquete para cada unidad lógica. A veces uso un paquete para el AbstractTableModels y mantenerlos juntos y otro para ComboBoxModels. No es necesario hacer estructuras más profundas. Usted puede tener un paquete separado para los iconos que usted puede utilizar para sus botones, uno para sonidos, etc. Netbeans crea el archivo jar ejecutable para su aplicación en todos los archivos necesarios, incluyendo la necesaria biblioteca frascos están incluidos.

    Aquí tenéis un pequeño ejemplo. Todos los nombres de los paquetes excepto ‘th’ son bastante evidentes. ‘th’ es el nombre de esta aplicación y tengo el JFrame que aloja la aplicación allí. Esta aplicación utiliza iReport en el fin de generar informes. Esto es lo que el ‘iReports’ paquete es para.

    Cómo organizar un Swing GUI de la aplicación?

    Libros describir muestras más pequeñas y están más preocupados con el Java convenciones.

    Usted podría tratar de Apache Maven y ver la arquitectura que proporcionar con la aplicación de los arquetipos.

    • Yo suelo usar Eclipse como IDE junto con Maven. Lamentablemente, no hay arquetipo para el Swing, o incluso para interfaces gráficas de usuario en general. Sin embargo me encontré con el siguiente ejemplo, que conduce al menos a la derecha dirección: mejores prácticas de software de ingeniería.ifs.tuwien.ac.a/basic/…
    • Eclipse está muy bien para las aplicaciones web. Yo lo uso para el GWT designer. Matisse gráfica Swing de desarrollo no es ni gratis ni que bien integrados como en Netbeans. MyEclipse muy bueno, pero usted tiene que comprar (no muy caro). Si usted desarrolla en Swing tratar de Netbeans. Es absolutamente gratis y inmejorable para el Swing. Usted encontrará los sencillos tutoriales en netbeans.com.El tuwien aplicación que has encontrado es bien definido. Buena suerte!
  4. 0

    Desafortunadamente (o afortunadamente, dependiendo de cómo se tome una mirada en ella), no es fácil desarrollar genérico paneles utilizable para varias estructuras de datos. M está a menudo estrechamente relacionadas con V, y V, a menudo contiene algunos C.

    Que tienden a poner el V panel y el correspondiente M. en el mismo paquete. Usted también necesita algo de control central de pantallas para mostrar cada uno de los paneles individuales. El C es compartida entre el nivel central el control de pantallas y paneles de sí mismos.

    Ahora, si usted necesita más estructura en su proyecto, usted podría secuestrar la Struts 2 marco para mover todos los C en algunas acciones, vidrios (V) indicar cuál debe ser el siguiente M/V para mostrar. Struts es originalmente desarrollado para las aplicaciones web, pero Struts 2 es ahora separada de la HttpServlet.

    No he probado a mí mismo, pero veo que algunos de los beneficios. Usted podría JUnit test de pantalla secuencias sin pantallas de visualización. Acaba de crear paneles de las instancias de panel y la invocación de la escucha de los métodos con los eventos (clic del ratón, etc…).

    Sólo una idea.

Dejar respuesta

Please enter your comment!
Please enter your name here