Hola tengo un applet que dibuja unos grafos pero al subir o bajar en la pantalla del navegador el applet pierde la forma ¿cómo se puede solucionar eso?
1 Respuesta
Respuesta de darkngel
1
1
darkngel, Programador java desde hace 1 año Actualmente estudiante...
¿Dibujas los grafos en el método paint? ¿Utilizas awt o swing? Creo que pueda ser en el método paint(). ¿Podrías mostrarme el código?
Si, dibujo los grafos en el método paint, la verdad el código es muy largo para mostrar... Mis import son: import java.awt.*; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import javax.swing.*; public class Appletgrafo extends JApplet { ..... yy=ye; xe=grafic.xelip(); ancho=grafic.anchofigura(p.recurso(j)); //se ve el ancho de la palabra g2.setColor(Color.blue); g2.draw(new Ellipse2D.Double(xe, ye, ancho, alto)); ... Utilizo los dos, swing y awt
¿El paint que utilizas es el de la clase JApplet? Si es así estas haciendo mal el dibujado, para dibujar en applets o frames swing no se hace a trtaves de método paint de estas clases, este método swing lo utiliza para hacer otras cosas al sobrecargarlo, estas haciendo que tu aplicación se comporte de manera extraña, como lo que esta sucediendo. Una manera de solucionar esto es es pasar todo el código referente al dibujado a una clase que herede del a clase JPanel, ya que esta se presta mucho mejor para trabajar con gráficos, y no sobreescribir el método paint(), sino el método paintComponent(), ya que todo componente swing utiliza paint para "uso interno" dependiendo del componente, al momento de sobreescribir paint component debe hacerse de la sig manera: public void paintComponent(Graphics g){ super.paintComponent(g);//esta debe ser siempre la primera linea en este metodo /* * el resto del codigo de dibujado....... */ }
Para aclarar un poco más acá esta parte de mi applet. import java.awt.*; import java. awt.geom.Ellipse2D; import java. awt.geom.Line2D; import java. awt.geom.Rectangle2D; import javax.swing.*; public class Appletgrafo extends JApplet { public void init() { //inicializa los colores del applet setBackground(Color.white); setForeground(Color.black); //recibe el parametro valorparam=getParameter("param1"); } public void start(){ } public void paint(Graphics g) { ... yy=ye; xe=grafic.xelip(); ancho=grafic.anchofigura(p.recurso(j)); //se ve el ancho de la palabra g2.setColor(Color.blue); g2.draw(new Ellipse2D.Double(xe, ye, ancho, alto)); ... ... } Probe con lo que me dijiste cambiando todo lo que estaba en la funcion public void paint(Graphics g) {} a public void paintComponent(Graphics g){} , pero aun asi no resulto. ojala me puedas ayudar, solucionando esto termino mi proyecto.
Seria que me enviaras todo el código a mi correo [email protected] así podre ver mejor el problema Suerte