Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/12/2009, 21:07
Avatar de zaccarelliasbun
zaccarelliasbun
 
Fecha de Ingreso: mayo-2009
Ubicación: Bolivia
Mensajes: 70
Antigüedad: 14 años, 11 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.