问题 多项选择题

下面是一个Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件清单如下:
import java.awt.*;
import java.applet.*;
/*
<applet code="ex11_3.class"width=800 height=400>
</applet>
*/
public class ex11_3 extends Applet

int[] x = 15,50,100,160,120,190 ;
int[] y = 15,100,30, 15, 80, 50 ;
public void init()

setBackground (Color. lightGray);

public void paint (Graphics g)

int[] y2 = new int[6];
g. setColor (Color. red);
Rectangle rect = getBounds();
g.drawPolygon (x, y2,6);
for(int i=0; i<6; i++)
y2[i] = y[i] + (rect.height / 2);
g. fillPolygon (x, y, 6);


ex11_3. html
<HTML>
<HEAD>
<TITLE>ex11_3</TITLE>
</HEAD>
<BODY>
<applet code="ex11_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>

答案

参考答案:g.drawPolygon(x,y,F)
yB[i]+=y[i]+(rect.height/B)
g.fillPolygon(x,yB,F)

解析: 本题主要考查Applet窗口编程和图形绘制的综合应用。解题关键是熟悉上述考点的基本要求,使用Graphics类的drawPolygon()和fillPolygon()方法绘制任意形状的图形,并且能结合数组进行编程实现。本题中第1处,第2个参数应该是y,而不是y2。y2还没有初始化;第2处,注意y2数组中的值是需要进行累加的,因此需要使用符号+=;第3处,fillPolygon()方法的第2个参数应该是y2,绘制新的图形,并填充,若是y则不能绘制新的图形。

单项选择题
单项选择题