Foros del Web » Programación para mayores de 30 ;) » Java »

Líneas en Java

Estas en el tema de Líneas en Java en el foro de Java en Foros del Web. ¡Hola! Llevo algún tiempo buscando como resolver un problema que tengo de graficos en Java pero no he podido encontrar alguna solución. No soy bueno ...
  #1 (permalink)  
Antiguo 14/12/2012, 08:38
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Líneas en Java

¡Hola!
Llevo algún tiempo buscando como resolver un problema que tengo de graficos en Java pero no he podido encontrar alguna solución. No soy bueno para dibujar en java

He definido una clase llamada Linea que se supone es para dibujar una linea (), pero no he podido dibujarla en un panel.
He buscado en algunas páginas pero solo dicen que "para dibujar una línea utilice drawLine(...)"; pero yo necesito es que esas líneas sean de la clase que acabo de crear y pueda mas adelante borrarla o inclusive hasta cambiarle sus coordenadas para moverla. [Por el momento necesito mas que nada poder dibujarla y borrarla]

Es decir, creo un objeto de esta clase, digamos que hago clic en alguna parte del panel obteniendo la primera coordenada, luego que haga clic en otra parte obteniendo la segunda coordenada y finalmente se dibuje. Digamos que ya dibuje varias líneas y ahora quiera borrar alguna línea, entonces solo tenga que darle doble clic o clic derecho y esta se borre.

¿Es posible hacer lo que necesito?

Saludos y gracias de antemano por comentarios/sugerencias
  #2 (permalink)  
Antiguo 14/12/2012, 09:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Líneas en Java

Hola:

La línea se dibuja con graphics.drawLine() sí o sí, no hay otra manera. Lo que puedes hacer es "darle la vuelta" al asunto. Ponle a tu clase un método dibujate(Graphics g) y dentro haz la llamada a drawLine(). De eata forma, en el método paint() de tu panel (debes heredar de él y sobreescribir dicho método) , puedes hacer esto

Código java:
Ver original
  1. public class Panel extends JComponent {   // o el componente swing que quieras
  2.    ...
  3.   @Override
  4.    public void paint (Graphics g) {
  5.       ...
  6.       tuLinea.pintate(g);
  7.    }
  8.    ...
  9. }

y dentro de tu clase línea

Código java:
Ver original
  1. public void pintante (Graphics g) {
  2.    g.drawLine (.....);
  3. }

En cualquier cosa esta solución puede no ser elegante, yo no metería una dependencia de Graphics en la clase Linea. No sé qué hace línea, pero si sólo tiene los puntos x,y de inicio y fin o lo que sea, es una clase muy básica mientras que Graphics es una clase compleja y meter la dependencia puede hacer que luego Linea no te sirva en otros sitios.

Echa un ojo a este enlace, hay un pequeño "paint" que puede servirte de ejemplo.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 14/12/2012, 13:58
 
Fecha de Ingreso: julio-2012
Ubicación: Colombia
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Líneas en Java

¡Muchas gracias chuidiang!

Cai en cuenta que estaba razonando la forma de hacer este proyecto de manera equivocada.
Lo que debo hacer es trabajar las líneas que necesito internamente, lógicamente; y si necesito mostrarlas las dibujo con el método "pintate" en el "paint" del panel como escribiste. Y para borrar alguna, la borro de mi conjunto y actualizo el panel.
Como estoy trabajando con un conjunto de líneas, estaba algo enredado.

Voy a seguir cacharriando porque como comente soy mas bien malo para dibujar en java, estoy en cero graficamente, aunque ya hice como una especie de paint primitivo.

¡Gracias!

Etiquetas: clase, jar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:25.