在绘制多边形ArrayIndexOutOfBoundsException异常错误(ArrayInde

2019-10-17 18:22发布

您好我有一个麻烦,而我试图绘制多边形。 首先,当我尝试绘制多边形使用addPoint(int x, int y)通过一种方法,并给予坐标一个是没有问题的,多边形可以完美drawed。 但是,如果我给坐标作为数组(一个整数阵列对于x坐标和y坐标)编译器给出错误。 这是工作的代码,你可以看到,

@Override
public void paint(Graphics g) {

    Graphics2D g2 = (Graphics2D) g;

    Polygon poly = new Polygon();

    poly.addPoint(150, 150);
    poly.addPoint(250, 100);
    poly.addPoint(325, 125);
    poly.addPoint(375, 225);
    poly.addPoint(450, 250);
    poly.addPoint(275, 375);
    poly.addPoint(100, 300);

    g2.drawPolygon(poly);

}

但是,如果使用的xpointsypoints阵列(其在图形类中定义为多边形)它不正常工作。

@Override
public void paint(Graphics g) {

    Graphics2D g2 = (Graphics2D) g;

    Polygon poly = new Polygon();

    poly.xpoints[0]=150;
    poly.xpoints[1]=250;
    poly.xpoints[2]=325;
    poly.xpoints[3]=375;
    poly.xpoints[4]=450;
    poly.xpoints[5]=275;
    poly.xpoints[6]=100;      

    poly.ypoints[0]=150;
    poly.ypoints[1]=100;
    poly.ypoints[2]=125;
    poly.ypoints[3]=225;
    poly.ypoints[4]=250;
    poly.ypoints[5]=375;
    poly.ypoints[6]=300;

    g2.drawPolygon(poly.xpoints, poly.ypoints, 7);

}

我会明白,如果你能帮助和感谢反正。

Answer 1:

从您的评论:

我认为,它应该是7原因有7个为每个阵列整数元素?

你必须首先initialize your array ,然后populate the array with elements

    poly.xpoints = new int[7]; // initializing the array
    poly.xpoints[0]=150;       //populating the array with elements.
    poly.xpoints[1]=250;
    poly.xpoints[2]=325;
    poly.xpoints[3]=375;
    poly.xpoints[4]=450;
    poly.xpoints[5]=275;
    poly.xpoints[6]=100;  

同样适用于ypoints中也是如此。

如果你在寻找一个动态数组使用的一个列表实现类的来自如ArrayList Java集合框架。

List<Integer> xPoints = new ArrayList<Integer>();
xPoints.add(150);
xPoints.add(250);
...


Answer 2:

尝试并使用阵列初始化预建的多边形。 你可以用手之前创建阵列,并将它们传递到构造函数的多边形。

public Polygon(int[] xpoints, int[] ypoints, int npoints)


Answer 3:

你知道数组的大小是什么? 它甚至初始化?

快速谷歌发现这一点:

http://docs.oracle.com/javase/7/docs/api/java/awt/Polygon.html#xpoints http://www.java2s.com/Code/JavaAPI/java.awt/GraphicsdrawPolygonintxPointsintyPointsintnPoints.htm



文章来源: ArrayIndexOutOfBoundsException error while drawing a polygon