Ver la versión completa : Problema Graphics Java
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.
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...
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 =).
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