Foros del Web » Programación » Java »

Dibujar lineas en Java

Estas en el tema de Dibujar lineas en Java en el foro de Java en Foros del Web. Hola muy buenas, quería dibujar una matriz de lineas con Java, me explico lo que quiero hacer. En un matriz, tengo colores, y quiero dibujar ...
  #1 (permalink)  
Antiguo 04/12/2009, 06:52
 
Fecha de Ingreso: junio-2009
Mensajes: 65
Antigüedad: 5 años, 4 meses
Puntos: 0
Dibujar lineas en Java

Hola muy buenas, quería dibujar una matriz de lineas con Java, me explico lo que quiero hacer.

En un matriz, tengo colores, y quiero dibujar una linea de ese color desde la entrada, fila I hasta la salida J es decir la columna de la matriz.

La idea es que no se como puedo dibujar en Java con swing una linea de un determinado color.

Muchisimas gracias!! Espero vuestra ayuda urgente!
  #2 (permalink)  
Antiguo 04/12/2009, 09:10
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.457
Antigüedad: 10 años
Puntos: 423
Respuesta: Dibujar lineas en Java

Hola:

Aquí tienes un pequeño tutorial de cómo dibujar en gráficos en java.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 04/12/2009, 16:07
 
Fecha de Ingreso: junio-2009
Mensajes: 65
Antigüedad: 5 años, 4 meses
Puntos: 0
Respuesta: Dibujar lineas en Java

Si, pero esa explicación que le encontré por Google, es para AWT, quería saber como hacer con SWING.

Os comento que lo que quiero hacer mas o menos es dibujar lineas para conectar centrales, por ejemplo de 3 a 3 centrales, conectadas con lineas, o bien mas de 3 centrales.

No se si me estoy explicando, alguien me podría decir algo acerca de esto.

Muchas gracias!
  #4 (permalink)  
Antiguo 07/12/2009, 20:07
Avatar de zaccarelliasbun  
Fecha de Ingreso: mayo-2009
Ubicación: Bolivia
Mensajes: 70
Antigüedad: 5 años, 5 meses
Puntos: 1
Respuesta: Dibujar lineas en Java

primero creas un panel, dentro de ese panel creas un jscrollpane para poner una clase que dibuje tus puntos es decir:

//En el panel principal tiene que ir esto

Dibujar objDibujar = new Dibujar();

JScrollPane jscroll = new JScrollPane(objDibujar);
jscroll.setViewPorView(objDibujar);


//Esta es otra clase que es la que vas a incluir en el Scrollpane

public class Dibujar extends JPanel
{
private BufferedImage buffImage;
private Graphics2D g2d;
private Vector posiciones;

public Dibujar()
{
ancholienzo = 1;
altolienzo = 1;
posiciones = new Vector();

buffImage = new BufferedImage(ancholienzo, altolienzo, BufferedImage.TYPE_INT_RGB);

g2d = ((Graphics2D)buffImage.getGraphics());

}

@Override
public void paint(Graphics g)
{
for(int i = 0; i < sitios.size(); i++)
{
Posiciones pos = (Posiciones)posiciones.get(i);
g2d.drawLine(pos.getPosX1(), pos.getPosX2(), pos.getPosX2(), pos.getPosY2());
}
g.drawImage(getBuffImage(), 0, 0, this);

}

public synchronized void actualizarPosiciones(Vector posiciones)
{
this.posiciones = posiciones;
repaint();
}
}

//ahora la clase Posiciones seria esto

public class Posiciones()
{
private int posX1, posX2, posY1, posY2;

public Posiciones(int x1, int y1, int x2, int y2)
{
this.posX1 = x1;
this.posX2 = x2;
this.posY1 = y1;
this.posY2 = y2;
}

creas sus setter y getter //
}


entonces en tu panel principal aparte de tener una variable de tipo Dibujar tenes que tener otra pero de Vector algo asi:


Dibujar objDibujar = new Dibujar();
Vector posiciones = new Vector();

JScrollPane jscroll = new JScrollPane(objDibujar);
jscroll.setViewPorView(objDibujar);

objDibujear.addMouseListener(new MouseAdapter{
public void mousePressed(MouseEvent e)
{
//aqui tienes que reconocer la posicion X y la posicion Y de la sucursal
//o cuando haga click en la primera sucursal guardarlo en una variable globale x1, y1
//para que cuando hagas click en la segunda sucursal hagas esto
//suponiendo que las posiciones X y Y de la primera sucursal las has guardado en una variable global

posiciones.add(new Posiciones(x1, y1, e.getX(), e.getY());
dibujar. actualizarPosiciones(posiciones);
jscroll.setViewPorView(dibujar);
}
});


espero que te sirva de algo, saludos.
  #5 (permalink)  
Antiguo 08/12/2009, 07:26
 
Fecha de Ingreso: junio-2009
Mensajes: 65
Antigüedad: 5 años, 4 meses
Puntos: 0
Respuesta: Dibujar lineas en Java

No, pero lo que yo pido es mucho más fácil que todo eso, dado a que las posiciones las tengo guardadas en un ARRAY.

Lo que tengo en la matriz, tengo INPUT en las filas, y OUTPUT en las columnas, de tal manera, que en la matriz tengo los colores, por lo tanto, tengo que conectar una linea con desde ese INPUT hasta ese OUTPUT con el color que tenga en la matriz.

El problema es que no se como dibujar esa linea desde el INPUT hasta el OUPUTni que valores debe de tener.

La cantidad que tengo que dibujar son N, dado que podrían ser 5 como 10...

A ver si alguien me puede ayudar ahora mejor...

Muchas Gracias!
  #6 (permalink)  
Antiguo 08/12/2009, 08:42
Avatar de zaccarelliasbun  
Fecha de Ingreso: mayo-2009
Ubicación: Bolivia
Mensajes: 70
Antigüedad: 5 años, 5 meses
Puntos: 1
Respuesta: Dibujar lineas en Java

algo como grafo? para poder pintar en java tienes que implementar el objeto graphics y el método paint, quizás añadiéndole a tu clase que tienes con swing puedas hacerlo, como el ejemplo que te mostré.

Saludos
  #7 (permalink)  
Antiguo 08/12/2009, 15:37
 
Fecha de Ingreso: junio-2009
Mensajes: 65
Antigüedad: 5 años, 4 meses
Puntos: 0
Respuesta: Dibujar lineas en Java

No exactamente como un grafo, pero quizás si sea más o menos así.

La idea es que tengo las centrales, y debo de conectarla (dibujar lineas) de varias centrales es decir

IN 1 -------------------------------------------- OUT 2
IN 2 -------------------------------------------- OUT 2
IN 3 -------------------------------------------- OUT 2

Y asi... tengo 3 centrales que van a la central OUT 2 todas y tengo que dibujar 3 lineas por ejemplo.

Eso no se como hacerlo. Muchas gracias a ver si alguien me puede decir algo.

Saludos y gracias!
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 17:39.
SEO by vBSEO 3.3.2