آموزش برنامه نویسی جاوا بخش ۵
اسلاید 1: آموزش زبان برنامه نویسی جاوا (Java) امیرحسین مرادی
اسلاید 2: String nekoSrc[] = {right1.gif, right2.gif, stop.gif, yawn.gif, “scratch1.gif, scratch2.gif,sleep1.gif, sleep2.gif,awake.gif }; for (int i=0; i < nekoPics.length; i++) { nekoPics[i] = getImage(getCodeBase(), images/ + nekoSrc[i]); } }
اسلاید 3: public void start() { if (runner == null) { runner = new Thread(this); runner.start(); } } public void stop() { runner = null; } public void run() { setBackground(Color.white); // run from one side of the screen to the middle nekoRun(0, size().width / 2);
اسلاید 4: // stop and pause currentImg = nekoPics[2]; repaint(); pause(1000); // yawn currentImg = nekoPics[3]; repaint(); pause(1000); // scratch four times nekoScratch(4); // sleep for 5 turns nekoSleep(5); // wake up and run off currentImg = nekoPics[8]; repaint(); pause(500); nekoRun(x, size().width + 10);
اسلاید 5: } void nekoRun(int start, int end) { for (int i = start; i < end; i += 10) { x = i; // swap images if (currentImg == nekoPics[0]) currentImg = nekoPics[1]; else currentImg = nekoPics[0]; repaint(); pause(150); } }
اسلاید 6: void nekoScratch(int numTimes) { for (int i = numTimes; i > 0; i--) { currentImg = nekoPics[4]; repaint(); pause(150); currentImg = nekoPics[5]; repaint(); pause(150); } } void nekoSleep(int numTimes) { for (int i = numTimes; i > 0; i--) { currentImg = nekoPics[6]; repaint(); pause(250);
اسلاید 7: currentImg = nekoPics[7]; repaint(); pause(250); } } void pause(int time) { try { Thread.sleep(time); } catch (InterruptedException e) { } } public void paint(Graphics screen) { if (currentImg != null) screen.drawImage(currentImg, x, y, this); }}
اسلاید 8: نکته : با وجود اینکه در زبان جاوا آزاد کردن فضای حافظه اختصاص داده شده به اشیاء به طور اتوماتیک انجام می شود، ولی این مسئله در مورد اشیاء Graphics صادق نیست. بنابر این برای آزاد شدن فضای حافظه اختصاص داده شده به این شیء به صورت زیر عمل می کنیم.public void destroy(){ offscreenGraphics.dispose();}
اسلاید 9: بافرینگ دوگانه :Double Buffering در صورت استفاده از بافرینگ دوگانه ابتدا کل فریم یک انیمیشن را در ناحیه ای نامریی ایجاد می کند و سپس آن را درون پنجره برنامه کپی می کند. برای پیاده سازی بافرینگ دوگانه ابتدا باید تصویر offscreen و محتوای Graphics را در دو متغیر نمونه قرار داد، و سپس آنها را به متد paint() ارسال کرد.Image offscreenImage;Graphics offscreen;سپس در هنگام مقدار دهی اولیه اپلت اشیایی از این دو کلاس ایجاد نموده و آنها را درون متغیرهای نمونه تعریف شده قرار می دهیم.offscreenImage = createImage(size().width, size().height);offscreen = offscreenImage.getGraphics();
اسلاید 10: سپس برای ترسیم تصاویر به روش زیر عمل می کنیم.offscreen.drawImage(bug, 10, 10, this);screen.drawImage(offscreenImage, 0 , 0, this);نکته: می توانید متد update() را override نمایید، تا صفحه نمایش بین دو عمل ترسیم پاک نشود.public void update(Graphics g){ paint(g);}
اسلاید 11: مثال import java.awt.*;public class Checkers extends java.applet.Applet implements Runnable { Thread runner; int xPos = 5; int xMove = 4; Image offscreenImg; Graphics offscreen; public void init() { offscreenImg = createImage(size().width, size().height); offscreen = offscreenImg.getGraphics();
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.