Java - dibujar Lineas

 
Vista:

dibujar Lineas

Publicado por Walter (33 intervenciones) el 05/09/2005 23:13:59
Hola,yo de nuevo, necesito su ayuda, tengo mas o menos este codigo, que lo que hace es graficar lineas con el Mouse,pero al estirar la linea, esta parpadea, alguien me puede decir como solucionar esto por favor, he intentado de muchas formas y no lo he logrado. Gracias de antemano

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Prueba extends JFrame implements MouseListener,MouseMotionListener {

int posX,posY;

public Prueba(){

setSize(800,600);
getContentPane().setLayout(null);

addMouseListener(this);
addMouseMotionListener(this);

}

public void mouseClicked( MouseEvent e ){}
public void mousePressed( MouseEvent e ){
posX = e.getX();
posY = e.getY();
}
public void mouseEntered( MouseEvent e ){}
public void mouseExited( MouseEvent e ){}
public void mouseReleased( MouseEvent e ){
getGraphics().drawLine( posX,posY,e.getX(),e.getY() );
}

public void mouseDragged( MouseEvent e ){

getGraphics().drawLine( posX,posY,e.getX(),e.getY() );
repaint();

}
public void mouseMoved( MouseEvent e ){}

public static void main( String[] args ){
Prueba p = new Prueba();
p.setVisible(true);
}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:dibujar Lineas

Publicado por chuidiang (532 intervenciones) el 06/09/2005 09:28:43
Hola:

Para evitar el parpadeo debes usar alguna técnica de esas de doble buffer. Básicamente consiste en dibujar sobre una imagen en memoria y luego pegar de golpe la imagen en el JFrame, sin borrar el JFrame.

En vez de pintar directamente en el JFrame, pinta en un BufferedImage (borrandolo previamente).

Redefine el método update() del JFrame para que llame a paint(). Por defecto, update() borra el JFrame() y llama a paint() para volver a pintarlo. Si lo redefines de esta forma, no se borrara el JFrame y se evitará el parpadeo.

Redefine el método paint() para que pinte el BufferedImage en el JFrame.

En http://www.geocities.com/chuidiang/java/graficos/libreria/libreria.html tienes los fuentes de una pequeña libreria gráfica que permite mover un gráfico arrastrandolo con el raton. Para evitar el parpadeo se ha hecho de esta manera. Echale un ojo a la clase Lienzo (a la redefinicion de paint() y update()).

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar