07/12/2009, 21:07
|
| | | Fecha de Ingreso: mayo-2009 Ubicación: Bolivia
Mensajes: 70
Antigüedad: 15 años, 7 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. |