PDA

Ver la versión completa : Problema Graphics Java



eduk15
26-07-2010, 09:35
Buenas señores de HackHispano, en esta ocasion les escribo para preguntarles acerca de la libreria Graphics de Java. Resulta que cuando dibujo unas lineas en mi JFrame y cuando las muestro se dibujan; pero cuando hago click en cualquier otro sitio del escritorio y/o de algun programa, estas lineas se borran y tengo que minimizar y maximizar la ventana donde estaban dibujadas. Quisiera saber como poder solucionar esto.

De antemano, gracias por sus respuestas.

hckr
26-07-2010, 12:00
Avisaré a -Localhost- que es de java a ver si te puede ayudar...

-Localhost-
26-07-2010, 13:01
Hey,

Eso sucede porque la imagen se carga a la vez que la estás dibujando, prueba a dibujarla sobre un DoubleBuffer y luego llamarlo desde el paint.

Si dejases una muestra de código sabría como ayudarte mejor, pero sólo te puedo dar este link (http://lefunes.wordpress.com/2008/02/27/utilizando-doble-buffer-en-jframe-mediante-bufferstrategy/) como referencia.

Un saludo.

PD: soy un nobatillo en el java hckr ¬¬ ^^U...

eduk15
27-07-2010, 02:08
Muchas gracias por tu ayuda -Localhost- consegui hacerlo con el doble buffer...posteo mi codigo por si acaso:



public class Frame01 extends javax.swing.JFrame {

private final BufferStrategy bf;

/** Creates new form Frame01 */
public Frame01() {
initComponents();
createBufferStrategy(2);
bf=this.getBufferStrategy();
// this.setResizable(false);
}


@Override
public void paint(Graphics g)
{
Graphics2D g2 = null;

try {
//obtenemos uno de los buffers para dibujar
g2 = (Graphics2D) bf.getDrawGraphics();

paint(g2);
} finally
{
g2.dispose();
}

//pintamos el buffer en pantalla
bf.show();
}

public void paint(Graphics2D g2)
{

int x1=15,x2=60;
int y1=40,y2=60;

g2.setColor(Color.BLUE);

for(int i=0;i<5;i++)
{
g2.drawLine(x1, y1, x2, y2);

y1=y1+20;

g2.drawLine(x2, y2, x1, y1);

y2=y2+20;

}

}

....
}


Muchas gracias nuevamente. Salu2

-Localhost-
27-07-2010, 05:27
Me alegra que te sirviese de ayuda. En ese caso pide que cierren el post =).

eduk15
27-07-2010, 07:43
ok gracias...am...pero siendo nuevo en esto de los foros no se como hacerlo...solo tengo que dejar dicho que ya se puede dar por cerrado el tema?

j8k6f4v9j
27-07-2010, 12:34
Así es :)


Salu2