2011-05-03 5 views
8

Estoy buscando un editor de GUI de Java o una biblioteca con la siguiente propiedad exótica: la GUI se puede manipular en tiempo de ejecución. Es decir, un marco en ejecución puede incluir controles especiales, por ejemplo, hacer clic con el botón derecho, que permiten a los usuarios agregar botones y otros widgets a él.Un editor de GUI para Java que puede manipular objetos en RUNTIME

Como alternativa, puedo usar un editor de GUI que puede interactuar con un programa Java en ejecución. El programa dice "por favor agregue un botón" y el editor muestra al usuario una paleta con botones. El usuario agrega un botón y lo presiona, y el programa recibe un evento "botón presionado".

¿Existe tal cosa que se pueda usar comercialmente, sin necesidad de escribirla desde cero?

+2

simplemente por curiosidad: ¿por qué necesitas tal cosa? –

+0

Para implementar la edición de la GUI como actividad guiada, por ejemplo, una prueba falla porque falta un botón, abra el editor de la GUI. –

Respuesta

1

Cualquier biblioteca JavaBean compatible admitiría la semántica Design Time. En pocas palabras, se entiende que un frijol (componente) se ejecuta en un contenedor. En tiempo de diseño, ese contenedor es el 'lienzo' del editor y, en tiempo de ejecución, la raíz de la jerarquía de contenedores (gui). Se espera que el autor del frijol consulte este indicador de estado y actúe apropiadamente, p. cambie los bordes en el tiempo de diseño para incluir 'controles' para arrastrar para cambiar el tamaño, etc. Y, naturalmente, también se espera que el componente padre (que se supone que es un lienzo de diseño) respete los cambios de diseño, p. modificar el diseño para manejar el componente redimensionado.

Dicho esto, no creo que ninguna de las ofertas actuales le permita simplemente cambiar entre designtime y runtime a su antojo en su aplicación.

Efectivamente, tendrá que (a) elegir una biblioteca y (b) agrupar la maquinaria necesaria para admitir designtime con su aplicación en ejecución, y (c) enmascarar una superficie de diseño (lienzo) como su interfaz de usuario . Por supuesto, solo necesitará respaldar las operaciones de diseño en las que esté interesado, pero en resumen, está escribiendo un editor de GUI.

¿Cuál es el beneficio de este enfoque? Bueno, estás reutilizando "componentes" y la mayoría necesita hackear el contenedor.

Si tuviera que hacer algo como esto, miraría seriamente netbeans, keep this STO question in mind, y lo tomaría desde allí.

Cuestiones relacionadas