亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ch13.htm

?? JAVA Developing Professional JavaApplets
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
&nbsp;&nbsp;&nbsp;&nbsp; * @see ImageConsumer#setPixels<BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR>&nbsp;&nbsp;&nbsp;&nbsp;public void setPixels(int x, int y, intw, int h,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ColorModel model, byte pixels[],<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int off, int scansize)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int index = y* originalSpace.width + x;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int srcindex =off;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int srcinc = scansize- w;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int indexinc =originalSpace.width - w;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ( int dy =0; dy &lt; h; dy++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for( int dx = 0; dx &lt; w; dx++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inPixels[index++]= model.getRGB(pixels[srcindex++] &amp; 0xff);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;srcindex+= srcinc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index+= indexinc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;/**<BR>&nbsp;&nbsp;&nbsp;&nbsp; * Set the pixels in our image array fromthe passed<BR>&nbsp;&nbsp;&nbsp;&nbsp; * array of integers.&nbsp;&nbsp;Xlatethe pixels into our default<BR>&nbsp;&nbsp;&nbsp;&nbsp; * color model (RGB).<BR>&nbsp;&nbsp;&nbsp;&nbsp; * @see ImageConsumer#setPixels<BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR>&nbsp;&nbsp;&nbsp;&nbsp;public void setPixels(int x, int y, intw, int h,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ColorModel model, int pixels[],<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int off, int scansize)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int index = y* originalSpace.width + x;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int srcindex =off;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int srcinc = scansize- w;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int indexinc =originalSpace.width - w;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ( int dy =0; dy &lt; h; dy++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for( int dx = 0; dx &lt; w; dx++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inPixels[index++]= model.getRGB(pixels[srcindex++]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;srcindex+= srcinc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index+= indexinc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;/**<BR>&nbsp;&nbsp;&nbsp;&nbsp; * Notification that the image is completeand there will<BR>&nbsp;&nbsp;&nbsp;&nbsp; * be no further setPixel calls.<BR>&nbsp;&nbsp;&nbsp;&nbsp; * @see ImageConsumer#imageComplete<BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR>&nbsp;&nbsp;&nbsp;&nbsp;public void imageComplete(int status)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (status ==IMAGEERROR || status == IMAGEABORTED)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;consumer.imageComplete(status);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double point[]= new double[2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int srcwidth =originalSpace.width;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int srcheight= originalSpace.height;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int outwidth =rotatedSpace.width;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int outheight= rotatedSpace.height;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int outx, outy,srcx, srcy;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outPixels = newint[outwidth * outheight];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outx = rotatedSpace.x;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outy = rotatedSpace.y;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double end[] =new double[2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int index = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ( int y =0; y &lt; outheight; y++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for( int x = 0; x &lt; outwidth; x++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//find the originalSpace point<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transformBack(outx+ x, outy + y, point);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;srcx= (int)Math.round(point[0]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;srcy= (int)Math.round(point[1]);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//if this point is within the original image<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//retrieve its pixel value and store in output<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//else write a zero into the space. (0 alpha = transparent)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( srcx &lt; 0 || srcx &gt;= srcwidth ||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;srcy&lt; 0 || srcy &gt;= srcheight )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outPixels[index++]= 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outPixels[index++]= inPixels[(srcy * srcwidth) + srcx];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// write the entirenew image to the consumer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;consumer.setPixels(0,0, outwidth, outheight, defaultRGBModel,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outPixels,0, outwidth);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// tell consumerwe are done<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;consumer.imageComplete(status);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}</TT></BLOCKQUOTE><HR><P>The rotation is complex. First, as Figure 13.4 shows, the rotatedobject is not completely within the screen's boundary. All therotated pixels must be translated back in relation to the origin.You can do this easily by assuming that the coordinates of rotatedspace are really 0,0-the trick is how the array is populated.An iteration is made along each row in rotated space. For eachpixel in the row, the rotation is inverted. This yields the positionof this pixel within the original space. If the pixel lies withinthe original image, grab its color and store it in rotated space;if it isn't, store a transparent color.<H4>SimpleRoll Revisited</H4><P>Now redo the SimpleRoll applet to incorporate the SpinFilter andbackground image. Instead of loading the four distinct images,apply the filter to perform the rotation:<BLOCKQUOTE><TT>/**<BR> * Check for the initial image load.&nbsp;&nbsp;Once complete,<BR> * rotate the image for (90, 180, 270 &amp; 360 degrees)<BR> * When all rotations are complete, return true<BR> * @returns true when all animation images are loaded<BR> */<BR>boolean checkRoll()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;finished = false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;// if we have not rotated the images yet<BR>&nbsp;&nbsp;&nbsp;&nbsp;if ( complete == false )<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( first.checkID(0, true))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for( int x = 0; x &lt; 4; x++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Generate the angle in radians<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doubleamount = x * 90;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Create the filter<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageFilterfilter = new SpinFilter(amount);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Use the filter to get a producer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageProducerp = new FilteredImageSource(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myImage.getSource(),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filter);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Use the producer to create the image<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allImages[x]= createImage(p);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tracker.addImage(allImages[x],0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;complete= true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;// else wait for all images to generate<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finished = tracker.checkID(0,true);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return finished;<BR>}</TT></BLOCKQUOTE><P>Instead of waiting for the four individual images to load, theroutine now waits for the four rotated images to generate. Inaddition, a background image is loaded.<P>Try running the new applet, which is in the file SpinRoll.javaon the CD-ROM that comes with this book. What happened when youran it? All that flashing is a common animation problem. Don'tdespair; you can eliminate it with double buffering.<H3><A NAME="DoubleBuffering">Double Buffering</A></H3><P><I>Double buffering</I> is the single best way to eliminate imageupdate flashing. Essentially, you update an offscreen image. Whenthe drawing is complete, the offscreen image is drawn to the actualdisplay. It's called double buffering because the offscreen imageis a secondary buffer that mirrors the actual screen.<P>To create the offscreen buffer, use <TT>createImage()</TT>with only the width and height as arguments. After creating theoffscreen buffer, you can acquire a graphics context and use theimage in the same manner as <TT>paint()</TT>.Add the following lines to the <TT>init()</TT>method of the applet:<BLOCKQUOTE><TT>Image offScreenImage = createImage(this.size().width,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.size().height);<BR>Graphics offScreen = offScreenImage.getGraphics();</TT></BLOCKQUOTE><P>When the image is completely drawn, use the following line tocopy it to the real screen:<BLOCKQUOTE><TT>g.drawImage(offScreenImage, 0, 0, this);</TT></BLOCKQUOTE><P>In addition, the <TT>update()</TT>method of the component needs to be overridden in the applet.Component's version of <TT>update()</TT>clears the screen before calling <TT>paint()</TT>.The screen clear is the chief cause of flashing. Your versionof <TT>update()</TT> should just call<TT>paint()</TT> without clearingthe screen.<BLOCKQUOTE><TT>public void update(Graphics g)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;paint(g);<BR>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡一二三| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 日本麻豆一区二区三区视频| 黄页视频在线91| 欧美影院一区二区| 欧美激情自拍偷拍| 看国产成人h片视频| 色综合久久66| 国产清纯美女被跳蛋高潮一区二区久久w | 国产欧美精品一区aⅴ影院| 悠悠色在线精品| 成人网页在线观看| 久久综合色播五月| 天堂av在线一区| 在线观看日韩精品| 国产精品免费看片| 国产综合久久久久久久久久久久| 欧美午夜一区二区三区免费大片| 国产精品久久三| 成人综合激情网| 久久久久免费观看| 国产美女视频91| 精品久久久久久久久久久久久久久| 五月天一区二区| 欧美日韩精品一区二区| 夜夜夜精品看看| 一本一本大道香蕉久在线精品| 国产欧美一区二区三区沐欲| 奇米综合一区二区三区精品视频| 欧美精品丝袜中出| 性做久久久久久久久| 欧美日韩国产大片| 丝袜美腿亚洲一区二区图片| 91麻豆精品国产自产在线观看一区| 性欧美疯狂xxxxbbbb| 欧美精品亚洲二区| 久久99精品久久久久久久久久久久 | 99久久国产综合精品麻豆| 亚洲国产高清在线观看视频| 国产在线国偷精品产拍免费yy| 久久嫩草精品久久久久| 国产福利91精品一区| 国产精品免费免费| 91福利区一区二区三区| 亚洲自拍偷拍网站| 欧美欧美欧美欧美| 九九视频精品免费| 国产女同互慰高潮91漫画| 成人免费视频视频在线观看免费| 欧美国产激情一区二区三区蜜月| 国产成人免费视频一区| 中文字幕一区在线观看视频| 国产91在线|亚洲| 中文字幕日韩精品一区| 91网上在线视频| 亚洲欧美偷拍卡通变态| 91免费版在线看| 亚洲最大的成人av| 精品视频在线视频| 亚洲青青青在线视频| 91精品欧美一区二区三区综合在 | 中国av一区二区三区| av一二三不卡影片| 亚洲综合自拍偷拍| 欧美日韩久久久久久| 日本特黄久久久高潮| 欧美精品三级日韩久久| 天堂午夜影视日韩欧美一区二区| 91精品国产欧美一区二区| 老司机精品视频在线| 国产亚洲精品免费| 91视频一区二区三区| 亚洲一区二区高清| 欧美mv日韩mv| 99久久综合国产精品| 亚洲电影一区二区三区| 欧美一区二区三级| 国产乱人伦偷精品视频不卡| 国产日产欧美一区二区三区 | 欧美不卡在线视频| 国产 欧美在线| 亚洲一区二区三区美女| 欧美日韩精品一区二区在线播放 | 欧美中文字幕久久| 久久se这里有精品| 成人欧美一区二区三区白人| 欧美综合在线视频| 国产精品一区在线| 亚洲成a人片综合在线| 久久综合色8888| 欧洲精品一区二区三区在线观看| 老司机免费视频一区二区三区| 国产精品免费观看视频| 欧美日韩在线亚洲一区蜜芽| 国产乱人伦偷精品视频免下载| 亚洲精品欧美综合四区| 欧美不卡一二三| 欧美三级午夜理伦三级中视频| 国产激情91久久精品导航| 日韩精品一区第一页| 国产精品区一区二区三区| 91精品国产综合久久久久久| 91原创在线视频| 精品在线一区二区三区| 亚洲风情在线资源站| 最新国产精品久久精品| 欧美自拍丝袜亚洲| 国产69精品久久久久毛片| 喷白浆一区二区| 一区二区成人在线视频| 欧美国产激情一区二区三区蜜月| 精品日韩一区二区| 91毛片在线观看| 丁香天五香天堂综合| 久久精品二区亚洲w码| 亚洲一区二区三区小说| 国产精品美女一区二区在线观看| 欧美一区二区三区电影| 欧美日韩高清一区二区不卡| 99国产精品久| 成人久久18免费网站麻豆| 日韩电影在线看| 九九视频精品免费| 精品伊人久久久久7777人| 天天操天天干天天综合网| 亚洲一区二区三区视频在线播放| 亚洲人成小说网站色在线| 国产精品另类一区| 中文字幕乱码一区二区免费| 欧美三级中文字幕| 懂色一区二区三区免费观看 | 亚洲欧美色综合| 中文字幕在线不卡国产视频| 亚洲国产精品二十页| 日韩午夜激情免费电影| 不卡av在线免费观看| 欧美优质美女网站| 欧美日韩亚洲国产综合| 欧美日韩一区二区在线观看视频| 欧美无乱码久久久免费午夜一区| 91黄视频在线| 欧美老人xxxx18| 精品少妇一区二区三区在线视频| 欧美一级黄色录像| 精品久久国产字幕高潮| 国产精品久久二区二区| 一区二区三区在线观看视频| 亚洲主播在线播放| 天天免费综合色| 激情欧美日韩一区二区| 成人免费毛片嘿嘿连载视频| 成人网页在线观看| 日本福利一区二区| 欧美日韩另类一区| 久久五月婷婷丁香社区| 国产精品水嫩水嫩| 亚洲国产日韩综合久久精品| 日韩av网站在线观看| 国产精品一级黄| 色综合激情久久| 日韩欧美亚洲国产精品字幕久久久| 欧美一级高清片| 中文字幕日韩av资源站| 性做久久久久久| 国产精品18久久久久久久久久久久| 成人黄色av电影| 99久久99久久综合| 欧美一区二区免费视频| 精品日韩一区二区三区免费视频| 国产精品国产a级| 午夜精品福利一区二区三区av | 男男成人高潮片免费网站| 国产乱码精品1区2区3区| 激情五月婷婷综合| 欧美人体做爰大胆视频| 欧美经典三级视频一区二区三区| 亚洲一区在线观看免费| 国产一区二区三区久久悠悠色av| 91激情五月电影| 国产欧美一区二区三区网站 | 91精品国产乱码久久蜜臀| 国产精品每日更新在线播放网址| 亚洲a一区二区| av网站免费线看精品| 制服丝袜亚洲色图| 国产精品色呦呦| 亚洲影院理伦片| 91福利区一区二区三区| 欧美激情一区不卡| 久久99精品国产91久久来源| 91免费在线看| 国产欧美日韩亚州综合| 偷拍亚洲欧洲综合| 99久久夜色精品国产网站| 国产精品免费av| 国产伦精品一区二区三区免费迷| 欧美精品xxxxbbbb| 一区二区三区国产精华| 成人高清在线视频| 亚洲精品在线电影|