dibujar una figura en Java applet- init (), pintar () y repintar ()

Tengo un problema al dibujar un polígono en el subprograma de Java. No entiendo qué está mal con este código. Tengo una clase llamada DrawPoly que contiene:

import java.awt.*;
import java.awt.geom.Point2D;
import java.applet.Applet;
import java.util.Vector;

public class DrawPoly extends Applet{
Polygon poly;
public void init(Graphics g){

        Polygon poly=new Polygon();
        poly.addPoint(60,100);

}
public void paint(Graphics g)
{
    Graphics2D gg;
    gg=(Graphics2D) g;
     System.out.println("number is"+ poly.npoints);
    }
 }

No entiendo por qué el siguiente código no funciona. Me gustaría crear un polígono global, inicializarlo en init y luego hacer algunas transformaciones 2D como la rotación en pintura. ¿Qué me estoy perdiendo? Solo agregué un punto para ver si las inicializaciones son correctas. No quiero inicializar el polígono en paint (), porque es posible que desee usar repaint () y el polígono se inicializaría cada vez que llamo a repaint (). Si pudiera ayudarme, por favor. Muchas gracias.

preguntado el 08 de noviembre de 11 a las 12:11

1 Respuestas

Applet DrawPoly

/* <applet code='DrawPoly' width=200 height=110></applet> */
import java.awt.*;
import java.applet.Applet;

public class DrawPoly extends Applet {

    Polygon poly;

    // init(Graphics) is not an applet method
    //public void init(Graphics g){
    @Override
    public void init() {
        // this declaration is creating a variable local
        // to the init() method
        //Polygon poly=new Polygon();
        poly=new Polygon();
        poly.addPoint(60,100);
        // at least add a 2nd point!
        poly.addPoint(160,60);
    }

    public void paint(Graphics g) {
        Graphics2D gg;
        gg=(Graphics2D) g;
        System.out.println("number is"+ poly.npoints);
        // the Polygon is never painted!
        gg.setColor(Color.BLACK);
        gg.drawPolygon(poly);
    }
}

respondido 08 nov., 11:17

Muchas gracias. No habría visto eso (// esta declaración está creando una variable local para el constructor -> Polygon poly = new Polygon () - biggdman

"No hubiera visto eso" Ahí es donde realmente ayuda un par de ojos frescos. Además, cuando fui a 'pintar el poliéster', el JRE lanzó grandes y jugosas NPE. ;) - Andrew Thompson

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.