嗨我在尝试绘制多边形时遇到了麻烦。首先,当我尝试使用addPoint(int x, int y)
方法绘制多边形并逐个给出坐标时没有问题,可以完美地绘制多边形。但是,如果我将坐标作为数组(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);
}
但如果我使用xpoints
和ypoints
数组(在Graphics类中为多边形定义),它就无法正常工作。
@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);
}
如果你能提供帮助和感谢,我将不胜感激。
答案 0 :(得分:2)
来自你的评论:
我认为它应该是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。
如果您正在寻找动态数组,请使用Java集合框架中的List实现类之一,如ArrayList。
List<Integer> xPoints = new ArrayList<Integer>();
xPoints.add(150);
xPoints.add(250);
...
答案 1 :(得分:2)
尝试使用预构建的数组初始化Polygon。您可以事先创建数组并将它们传递给Polygon的构造函数。
public Polygon(int[] xpoints, int[] ypoints, int npoints)
答案 2 :(得分:1)