下面是一个Applet程序,实现实心或者空心矩形的绘制。要求鼠标在Applet窗口中拖动实现矩形的绘制,可以选择填充或者空心,有按钮用来清空窗口中的图像。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:import java.awt.*;import java.applet.*;/*<applet code="ex13_3.class" width=800 height=400 ></applet>*/public class ex1

题目

下面是一个Applet程序,实现实心或者空心矩形的绘制。要求鼠标在Applet窗口中拖动实现矩形的绘制,可以选择填充或者空心,有按钮用来清空窗口中的图像。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

注意:不改动程序的结构,不得增行或删行。

程序运行结果如下:

import java.awt.*;

import java.applet.*;

/*

<applet code="ex13_3.class" width=800 height=400 >

</applet>

*/

public class ex13_3 extends Applet{

private Button btnClear;

private CheckboxGroup cbg;

private Checkbox chk1, chk2;

private int upX, upY;

private int downX, downY;

private boolean bDraw, bClear, bStyle;

public void init(){

bDraw = false;

bClear = false;

bStyle. = false;

setLayout(null);

cbg = new CheckboxGroup();

chk1 = new Checkbox("Hollow", cbg, true);

chk2 = new Checkbox("Filled", cbg, false);

chk1.reshape(80,getSize().height-80,80,25);

chk2.reshape(160,getSize().height-80,80,25);

add(chk1);

add(chk2);

btnClear = new Button("clear");

btnClear.reshape(240,getSize().height-80,80,25);

add(btnClear);

}

public void paint(Graphics g){

if(bDraw){

if(upX > downX && upY > downY){

if (bStyle)

g. fillRect (downX, downY, upX - downX, upY - downY);

else

g.drawRect(downX, downY, upX - downX, upY - downY);

}

else if(upX > downX && upY < downY){

if(bStyle)

g.fillRect(downX, upY, upX - downX, downy - upY);

else

g.drawRect(downX, upY, upX - downX, downy - upY);

}

else if(upX < downX && upY > downY){

if(bStyle)

g.fillRect(upX, downY, downX - upX, upY - downY);

else

g.drawRect(upX, downY, downX - upX, upY - downY);

}

else if(upX < downX && upY < downY){

if(bStyle)

g.fillRect(upX, upY, downX - upX, downy - upY);

else

g.drawRect(upX, upY, downX - upX, downy - upY);

}

bDraw = false;

}

if(bClear)(

g.clearRect(0,0, getSize().height, getSize().width);

b


相似考题

2.下面是一个Applet程序,其功能是根据公式:y=a*sin(x)绘制正弦曲线。要求窗口中有一个文本区作为曲线峰值a的输入,可以判断输入的数字是否符合要求,一个ok按钮,点击则在画布中绘制曲线,以画布中的横坐标值作为sin()的参数x。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.lang.Math.*;/*<applet code="ex18_3.class" width=800 height=400 ></applet>*/public class ex18_3 extends Applet implements ActionListener {Panel pane=new Panel();drawWnd dw;Label 11 = new Label("峰值");TextField tf1 = new TextField(15);Button btn = new Button("OK");private float a=0;public void init(){pane.setLayout(new FlowLayout(FlowLayout.CENTER,25,5));pane.add(11);pane.add(tf1);pane.add(btn);btn.addActionListener(this);add("North",pane);dw=new drawWnd();add("South",dw);}class drawWnd extends Canvas {drawWnd() {setSize(300,100);setBackground(Color. GRAY);}public void paint(Graphics g) {g.setColor(Color.GREEN);for(int i=0;i<getSize().width-1;i++){int y=0;int y1=y+(int) (Math.sin(i)*a);int y2=y1+(int) (a*Math.sin(i+1));g.drawLine(i,y1,i+1,y2);}}}public void actionPerformed(ActionEvent ae) {try{a=Integer.parseInt(tf1.getText());dw.repaint();}catch(NumberFormatException nfe){tf1.setText("error!");}}}ex18_3.html<HTML><HEAD><TITLE>ex18_3</TITLE></HEAD><BODY><applet code="ex18_3.class" width=800 height=400 ></applet></BODY></HTML>

更多“ 下面是一个Applet程序,实现实心或者空心矩形的绘制。要求鼠标在Applet窗口中拖动实现矩形的绘制,可以选择填充或者空心,有按钮用来清空窗口中的图像。请改正程序中的错误(有下划线的语句),使程序能输出正确的结”相关问题
  • 第1题:

    下面是一个Applet程序,程序的功能输出一个彩色窗体。请改正程序中的错误(有下划线的语句),使程序能输出正确结果。

    注意:不改动程序的结构,不得增行或删行。

    程序的输出结果为:

    import java.awt.*;

    import java.awt.image.*;

    import java.applet.Applet;

    public class MemoryImage extends Applet

    {

    Image IMG nClick=over(this) title=放大;

    public void init()

    {

    Dimension d=getSize();

    int w=d.width,h=d.height;

    int pix[ ]=new int[w*h];

    int index=0;

    for(int y=0;y<h;y++)

    for(int x=0;x<w;x++)

    {

    int red=(x|y)&&0xff;

    int green=(x*2|y*2)&0xff;

    int blue=(x*4|y*4)&0xff;

    pix[index++]=(255<<24)|(red<<16)|(green<<8)|blue;

    }

    IMG nClick=over(this) title=放大=createImage(new FilteredImageSource(w,h,pix, 0,w));

    }

    public void paint(Graphics g)

    {

    g.drawImage(IMG nClick=over(this) title=放大, 0,0,super);

    }

    }

    ex36_3.html:

    <html>

    <head>

    <title>A Simple Program</title>

    </head>

    <body>

    <applet code=" MemoryImage.class" width=800 height=400>

    </applet>

    </body>

    </html>


    正确答案:int red=(x|y)&0xff; IMG onClick=over(this) title=放大=createImage(new MemoryImageSource(whpix0w)); g.drawImage(IMG onClick=over(this) title=放大00this);
    int red=(x|y)&0xff; IMG nClick=over(this) title=放大=createImage(new MemoryImageSource(w,h,pix,0,w)); g.drawImage(IMG nClick=over(this) title=放大,0,0,this); 解析:本题主要考查JavaApplet程序的设计。解答本题的关键是掌握MemoryImageSource(int width,int height,int pixel[],int offset,int scanLineWidth)方法的使用;其中width和height指明图像的大小,pixel中包含每个像素点的值,scanLineWidth指明图像中每行的像素数。在本题中,int red=(x|y)&0xff;语句的功能是定义变量red使其值为(x|y)&0xff,IMG nClick=over(this) title=放大=createImage(new MemoryImageSource(w,h,pix,0,w));语句的功能是生成图像,g.drawImage(IMG nClick=over(this) title=放大,0,0,this);语句的功能是在指定的Applet显示区内画出图像。

  • 第2题:

    下面是一个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(xy6) y2[i]+=y[i]+(rect.height/2) g.fillPolygon(xy26)
    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则不能绘制新的图形。

  • 第3题:

    2、设需要选一个窗,要求实现的最小阻带衰减是45db,可以选择的窗有

    A.矩形窗。

    B.Hann窗。

    C.Hamming窗。

    D.Blackman窗。


    Hamming 窗。;Blackman 窗。

  • 第4题:

    下面是一个Applet程序,其功能是分析任意输入的字符串,将字符串中由空格隔开的字串提取并显示出来。要求,窗口中有一个输入文本框,用于接受输入的字符串,一个按钮,点击则开始分析,分析结果用图形方式打印在窗口下面的区域中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    程序运行结果如下:

    import java.awt.*;

    import java.applet.*;

    import java.util.StringTokenizer;

    public class ex27_3 extends Applet{

    private TextField tf;

    private Button btn;

    public void init(){

    tf = new TextField(25);

    add(tf);

    btn= new Button("分析");

    add(btn);

    resize(250, 200);

    }

    public void paint(Graphics g){

    String str = tf.getText();

    StringTokenizer st = new StringTokenizer(tf);

    int n = 80;

    while (!st.hasMoreTokens()){

    String tem = st.nextToken();

    g.drawString(tem, n, 80);

    n += 20;

    }

    }

    public boolean action(Event e, Object o){

    if (o == "分析") {

    repaint();

    return true;

    }

    else

    return false;

    }

    }

    ex27_3.html

    <HTML>

    <HEAD>

    <TITLE>ex27_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex27_3.class" width=800 height=400

    </applet>

    </BODY>

    </HTML>


    正确答案:new StringTokenizer(str) St.hasMoreTokens() g.drawString(tem 80n)
    new StringTokenizer(str) St.hasMoreTokens() g.drawString(tem, 80,n) 解析:本题主要考查字符串的分割和Applet图形界面相结合的综合应用。解题关键是熟悉字符串的分割方法,使用 StringTokenizer的对象来对String类的对象进行分割。本题中,第1处,StringTokenizer类的构造方法应该以String类的对象作为入口参数;第2处,判断语句应该是当对象st中还有分割串的时候则继续进行;第3处,drawString()方法的参数第2个表示输出字符串起始位置的横坐标,第3个是纵坐标,如果n作为横坐标,则输出的字符串会发生重叠。

  • 第5题:

    下面是一个Applet程序,其功能是在窗口中绘制3个半径递增的圆,并用RGB三原色对这 3个圆填充。要求建立一个绘制圆的类,实现根据指定颜色进行填充的功能,在主程序中通过调用这个类的方法实现圆的绘制。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    import java.applet.*;

    import java.awt.*;

    import java.awt.*;

    /*

    <applet code="ex15_3.class"width=800 height=400>

    </applet>

    */

    class CanvasCircle extends Canvas{

    private Color cCircle;

    public CanvasCircle(Color c){

    cCircle=c;

    }

    public void paint(Graphics g){

    int dimCircle,xCircle,yCircle;

    Dimension sizeCurrent=getSize();

    if(sizeCurrent.width>sizeCurrent.height){

    dimCircle=sizeCurrent.width;

    }

    else{

    dimCircle=sizeCurrent.height;

    }

    g.setColor(cCircle);

    xCircle=(sizeCurrent.heighe-dimCircle)/2;

    yCircle=(sizeCurrent.width-dimCircle)/2;

    g.fillOval(xCircle,yCircle,dimCircle,dimCircle);

    }

    }

    public class exl5_3 extends Applet{

    public void init(){

    GridBagLayout gbl=new GddBagLayout();

    GridBagConstraints gbc=new CridBagConstraints();

    CanvasCircle circleNew;

    setLayout(gbl);

    gbc.weightx=1.0;

    gbc.weighty=1.0;

    gbc.fill=GridBagConstraints.BOTH;

    circleNew=new CanvasCircle(Color.red);

    gbl.setConstraints(circleNew,gbc);

    add(circleNeW);

    gbc.weightx=1.5;

    gbc.weighty=1.5;

    circleNew=new CanvasCircle(Color.green);

    gbl.sctConstraints(eircleNew,gbc);

    add(circleNew);

    gbc.weightx=2.0;

    gbc.weighty=2.0;

    circleNew=new CanvasCircle(Color.blue);

    gbl.setConstraints(circleNew,gbc);

    add(circleNew);

    }

    }

    ex15_3.html

    <HTML>

    <HEAD>

    <TITLE>ex15_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex15_3.class"width=800 height=400>

    </applet>

    </BODY>

    </HTMI>


    正确答案:sizeCurrent.widthsizeCurrent.height xCircle=(sizeCurrent.width-dimCircle)/2 yCircle=(sizeCurrent.height-dimCircle)/2
    sizeCurrent.widthsizeCurrent.height xCircle=(sizeCurrent.width-dimCircle)/2 yCircle=(sizeCurrent.height-dimCircle)/2