[問答題] 下面是一個(gè)Applet程序,程序的功能輸出一個(gè)彩色窗體。請(qǐng)改正程序中的錯(cuò)誤(有下劃線的語句),使程序能輸出正確結(jié)果。 注意:不改動(dòng)程序的結(jié)構(gòu),不得
[問答題] 下面是一個(gè)Applet程序,程序的功能輸出一個(gè)彩色窗體。請(qǐng)改正程序中的錯(cuò)誤(有下劃線的語句),使程序能輸出正確結(jié)果。
注意:不改動(dòng)程序的結(jié)構(gòu),不得增行或刪行。
程序的輸出結(jié)果為:
import java.awt.*;
import java.awt.image.*;
import java.applet.Applet;
public class MemoryImage extends Applet
Image img;
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=createImage(new FilteredImageSource(w,h,pix, 0,w));
public void paint(Graphics g)
正確答案:
int red=(x|y)&0xff; img=createImage(new MemoryImageSource(w,h,pix,0,w)); g.drawImage(img,0,0,this);
參考解析:本題主要考查Java Applet程序的設(shè)計(jì)。解答本題的關(guān)鍵是掌握MemoryImageSource(int width,int height,int pixel[],int offset,int scanLineWidth)方法的使用;其中width和height指明圖像的大小,pixel中包含每個(gè)像素點(diǎn)的值,scanLineWidth指明圖像中每行的像素?cái)?shù)。在本題中,int red=(x|y)&0xff;語句的功能是定義變量red使其值為(x|y)&0xff,img=createImage(new MemoryImageSource(w,h,pix,0,w));語句的功能是生成圖像,g.drawImage(img,0,0,this);語句的功能是在指定的Applet顯示區(qū)內(nèi)畫出圖像。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。