Ayuda dibujando en java

No se si el título es muy correcto pero bueno. Estoy haciendo un programa en java y necesito que en la ventana principal del programa aparezca un diagrama de flujo (con sus cuadrados y flechas). El diagrama siempre será igual, pero según las acciones que haga yo cambiarán algunas cosas (el texto dentro de los cuadros y el color de alguna flecha). La cosa es que el diagrama es bastante grande y me gustaría saber si hay alguna modo de dibujarlo de forma "visual", porque si me pongo a dibujarlo a base de "drawline()" puedo volverme loco con las coordenadas.
Puedes crear una imagen del diagrama, cargarla en java y luego pintarla con Graphics.drawImage.
Pero con drawImage lo único que puedo hacer es cargar imágenes ya creadas no? o sea, no puedo pintar elementos de una imagen. Lo que yo quiero hacer es tener un diagrama (como este por ejemplo) y según distintas acciones (pulsar un botón, recibir respuesta de un subprograma...) cambiar el color de un cuadro o una flecha.
Ronbin escribió:Pero con drawImage lo único que puedo hacer es cargar imágenes ya creadas no? o sea, no puedo pintar elementos de una imagen. Lo que yo quiero hacer es tener un diagrama (como este por ejemplo) y según distintas acciones (pulsar un botón, recibir respuesta de un subprograma...) cambiar el color de un cuadro o una flecha.


Si se podria pero a la final volverias a lo mismo de calcular las coordenadas para cambiar el color de los pixeles. Creo que sería mejor crear las clases para cada componente del diagrama y que lo vaya pintando segun tus necesidades (mucho trabajo) o buscar una libreria para modelados de diagramas 2D, y partir de alli.
Lo mejor es que, con swing, hagas el diagrama.

Defines las cajas, los conectores como líneas, y luego los pones en la posición que quieras.

Cuando ejecutes esas operaciones que comentas simplemente tienes que cambiar los atributos de cada objeto, tanto posición como color (incluso texto y tamaño).

Al principio es un poco jodida la programación con swing, pero más adelante verás que es algo "parecido" a maquetar con css. (si alguna vez has hecho eso).

Básicamente es crear los objetos, asignarles atributos y dibujarlos...... tendrás que tener paciencia y buscar una buena guía básica.

Buena suerte.
4 respuestas