【问题标题】:draw figure in java applet- init(), paint() and repaint()在 java applet-init()、paint() 和 repaint() 中绘制图形
【发布时间】:2011-11-08 12:44:14
【问题描述】:

我在 Java 小程序中绘制多边形时遇到问题。我不明白这段代码有什么问题。我有一个名为 DrawPoly 的类,其中包含:

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);
    }
 }

我不明白为什么下面的代码不起作用。我想创建一个全局多边形,在 init 中对其进行初始化,然后进行一些 2D 转换,例如在绘画中旋转。我错过了什么?我只加了一点看初始化是否正确。我不想在paint() 中初始化多边形,因为我可能想使用repaint() 并且每次调用repaint() 时都会初始化多边形。如果你能请帮帮我。非常感谢。

【问题讨论】:

    标签: java applet polygon


    【解决方案1】:

    /* <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);
        }
    }
    

    【讨论】:

    • 非常感谢。我不会看到(//这个声明是在构造函数中创建一个局部变量 --> Polygon poly=new Polygon()
    • “我不会看到那个” 这就是一双新鲜的眼睛真正有用的地方。另外,当我去“绘制多边形”时,JRE 抛出了大而多汁的 NPE。 ;)
    猜你喜欢
    • 2013-03-12
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2014-10-10
    • 2012-08-04
    相关资源
    最近更新 更多