بخش هفتم : سرویسهای وب (Web services) – قسمت پنجم
در ادامه قصد داریم کامپوننت دیگریعلاوه بر کامپوننت های موجود ساخته و در برنامه خود از آن استفاده کنیم. از آنجاییکه هدف ما نمایش فایل های گرافیکی در موبایل است، نیاز به ایجاد یک بستر مناسببرای آنها داریم. روی پروژه موبایل راست کلیک نموده و از لیست New روی گزینه Other کلیک کنید.
تصویر 97
سپس در پنجره New File و از گروه MIDP گزینه MIDP Canvas را انتخاب کرده و روی کلید Next کلیک می کنیم.
تصویر 98
نام و عنوان کلاس MIDlet و Package را وارد کرده (ِDolbertCanvas و dilbert) و روی کلید Finish کلیک می کنیم.
تصویر 99
NetBeans کلاس Canvas را به پروژه اضافه می نماید.
تصویر 100
این کلاس هنوز کدهای موردنیاز برایاجرا را ندارد و باید شما براساس نیاز پروژه متغیرها، متدها و توابع مورد نیاز خودرا به آن اضافه کنید.
تصویر 101
چنانچه در درک دستورات برنامه نویسیمشکل دارید احتمالا نیاز به گذراندن یک دوره برنامه نویسی زبان C یا Java دارید.با این حال یک توضیح مختصر در مورد این کدها ارائه می کنیم.
تصویر 102
تصویر 103
برای راحتی کار شما ما این کدها رابرایتان تایپ کرده ایم
/*
* Tochange this template, choose Tools | Templates
* and openthe template in the editor.
*/
package dilbert;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
/**
*@author hashem
*/
public class DilbertCanvas extends Canvas {
private int coordX, coordY;
privateint imageWidth, imageHeight;
privateImage image;
privateint screenWidth, screenHeight;
/** Creates a new instance of DilbertCanvas */
publicDilbertCanvas() {
screenHeight = getHeight();
screenWidth = getWidth();
}
public void setImage(Image image) {
this.imageWidth = image.getWidth();
this.imageHeight = image.getHeight();
this.image = image;
}
protected void paint(Graphics graphics) {
graphics.setColor(255, 255, 255);
graphics.fillRect(0, 0, getWidth(), getHeight());
graphics.drawImage(image, coordX, coordY, Graphics.LEFT | Graphics.TOP);
}
protected void keyPressed(int keyCode) {
intkey = getGameAction(keyCode);
if(key == DOWN) {
if (coordY - screenHeight + imageHeight > 0) {
coordY -= 10;
}
} else if (key == UP) {
if (coordY < 0) {
coordY += 10;
}
} else if (key == RIGHT) {
if (coordX - screenWidth + imageWidth > 0) {
coordX -= 10;
}
} else if (key == LEFT) {
if (coordX < 0) {
coordX += 10;
}
}
repaint();
}
}
خط اول این کدها نشان دهنده نام Package است. سه خط Import بعدی کلاس ها و Package های کتابخانه ای Java را فراخوانی می کند تا بتواند از متدها وتوابع موجود در آنها استفاده کند. خط بعدی نام و خصوصیات کلاس حاضر را مشخص میکند. متغیرها و متدهای عضو این کلاس درون علامتهای آکولاد ({}) باز و بسته تعریفمی شوند. درورن کلاس ابتدا متغیرهای سراسری تعریف شده و سپس اقدام به تعریف متدهایآن کرده ایم. متد DilbertCanvas به عنوان سازنده کلاس و برای ایجاد نمونه ایاز کلاس حاضر تعریف شده است. متد setImage تصویر را به عنوان پارامتر دریافت کرده و پساز تنظیم طول و عرض آن ، آنرا نمایش می دهد. متد Paint متغیری از نوع گرافیک را به عنوان ورودیدریافت نموده و مشخصات گرافیکی صفحه نمایش را براساس آن تنظیم می کند. متد keypress نیز کلید فشار داده شده توسط کاربر موبایلرا به عنوان ورودی به عنوان ورودی دریافت نموده و براساس آن صفحه نمایش را مجدداترسیم می کند.
برای ذخیره پروژه روی ابزار Save All از نوار ابزار کلیک می کنیم.
تصویر 104
برای کامپایل کامپوننت Canvas روی عنوان پروژه راست کلیک کرده و سپس رویگزینه Build کلیک کنید.
تصویر 105
به این ترتیب کامپوننت Canvas ساخته شده و آماده استفاده در پروژه گردیدهاست.