下面是一个Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结

admin2009-01-15  97

问题 下面是一个Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
   注意:不改动程序的结构,不得增行或删行。
   程序运行结果如下:
        
      import java.awt.*;
      import java.applet.*;
      /*
      <applet code="ex20_3.class" width=800 height=400 >
      </applet>
      */
      public class ex20_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 = y  +  (rect.height / 2);
              g.fillPolygon(x,y,6);
        }
    }
    ex20_3.html
    <HTML>
    <HEAD>
       <TITLE>ex20_3</TITLE>
    </HEAD>
    <BODY>
    <applet code="ex20 3.class" width=800 height=400 >
    </applet>
    </BODY>
    </HTML>

选项

答案g.drawPolygon(x,y,6) y2[i]+=y[i]+(rect.height/2) g.fillPolygon(x,y2,6)

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

最新回复(0)