PDA

View Full Version : سوال: مشکل نصب برنامه جاوا و ایجاد دو فایل برنامه



Parthia
یک شنبه 17 شهریور 1387, 22:04 عصر
سلام دوستان
یه سوال داشتم
راستش من یه برنامه خیلی ساده نوشتم با جاوا برای گوشیم و همه چیز خیلی خوب کار میکنه فقط دو تا مشکل داره
یکی اینکه وقتی برنامه رو روی گوشی خودم (N72) نصب میکنم (بقیه رو تست نکردم) بر خلاف بقیه برنامه ها دو تا فایل برنامه میسازه که یکی هم اسم کلاس Midlet هست که باید حتما این باشه ولی دیگری هم اسم کلاس Canvas منه که نمیدونم چرا اینم میاد کنار برنامه ام و قابل اجرا هم نیست

در ضمن مشکل دیگه من (از بی تجربگی) اینه که نمیدونم چطوری باید از طریق کلاس Canvas به اعضای Midlet دسترسی پیدا کنم و مثلا تابع destroyApp و notifyDestroyed رو فراخوانی کنم که اگه کمک کنید ممنون میشم البته خودم یه راهی پیدا کردم که کلاس Midlet رو به سازنده Canvas بفرستم و بعد notifyDestroyed که البته توی خارج شدن از برنامه کلی waiting داره ... (از طریق فرستادن this به structure)

با توجه به اینکه رشته من هیچ ربطی به کامپیوتر نداره و سنم هم کمه پس رو در باسی نداریم با هم (بلد نیستم) !!! :لبخند: اینم کدها : :کف:




//Author : Morteza Sherafati (mortie.sh@gmail.com)

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Game extends MIDlet
{
Display display = Display.getDisplay(this);

public void startApp()
{
CGame cg = new CGame(this);
display.setCurrent(cg);
}
public void pauseApp()
{}
public void destroyApp(boolean opt)
{}
}





//Author : Morteza Sherafati (mortie.sh@gmail.com)

import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

public class CGame extends Canvas implements Runnable
{
private int mover=0,x,y;
private Image img;
MIDlet Midlet;
Thread runner;
Command cmdExit = new Command("Exit",Command.EXIT,1);

CGame(MIDlet game)
{
try
{
img = Image.createImage("/Pic.png");
}
catch(Exception e)
{System.out.print(e.getMessage());}
Midlet = game;
x = getWidth()/2 - img.getWidth()/2;
y = getHeight()/2 - img.getHeight()/2;
this.addCommand(cmdExit);
this.setCommandListener(cl);
runner = new Thread(this);
runner.start();
}
CommandListener cl = new CommandListener()
{
public void commandAction(Command c, Displayable s)
{
if (c == cmdExit)
Midlet.notifyDestroyed();
}
};
protected void keyPressed(int keyCode)
{
int action = getGameAction(keyCode);
switch(action)
{
case RIGHT:
mover = 1;
break;
case LEFT:
mover = -1;
break;
case UP:
mover = -2;
break;
case DOWN:
mover = 2;
break;
case FIRE:
mover = 0;
break;
}
}
public void run()
{
while(true)
{
switch(mover)
{
case 1:
x += 1;
break;
case -1:
x -= 1;
break;
case 2:
y += 1;
break;
case -2:
y -= 1;
break;
}
repaint();
if (x == 0)
mover = 1;
if (x == getWidth() - img.getWidth())
mover = -1;
if (y == 0)
mover = 2;
if (y == getHeight() - img.getHeight())
mover = -2;
try
{
Thread.sleep(10);
}
catch(Exception e)
{System.out.print(e.getMessage());}
}
}
public void paint(Graphics g)
{
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(img, x, y, 0);
}
}

Parthia
سه شنبه 19 شهریور 1387, 17:04 عصر
نگاه کن دوست عزیز
من که بلد نیستم جوابتو بدم
توی این سایت به این بزرگی هم هیچ کس بلد نیست جوابتو بده
پس بی خودی خودتو الاف نکن

ای خدا .................................................. ..................................

handinux
سه شنبه 19 شهریور 1387, 20:56 عصر
سلام دوست عزیز
برنامتون خوب کار می کنه؟ پس مشکل چیه؟
خب برنامه شما یک کلاس میدلت داره و یک کلاس کانواس که برای کارهای گرافیکی و کنترل کلید در سطح پایین ایجاد شده.خب این که تعجب نداره.در ضمن کانواس قرار نیست اجرا بشه.کانواس در فایل اصلی شما ازش آبجکت گرفته می شه.شما نمی تونید اون سه تا متد رو در کانواس فراخوانی کنید چون از کلاس Midlet که ارث نبردید.

Parthia
چهارشنبه 20 شهریور 1387, 13:56 عصر
ممنون باز یه نفر به فکر ما بود
خوب برنامه درست کار میکنه ولی توی گوشی من (نوکیا سری N) توی پوشه My Own که مخصوص برنامه هاست موقعی این برنامه رو نصب میکنم دو تا برنامه ایجاد میشه که تا حالا من با هیچ برنامه ای اینجوری ندیده بودم یکی هم اسم کلاس Midlet هست که وصل میشه به Canvas و اونو اجرا میکنه و یکی هم هم اسم کلاس Canvas هست که اجرا نمیشه من میخوام یه برنامه فقط وارد این پوشه بشه و هم اسم برنامه باشه
در ضمن یه سوال من چطوری میتونم هم از کلاس Canvas ارث ببرم هم از Midlet ؟؟؟

راستی وبلاگتم خیلی با حاله ... دمت قیژ ما جاوا رو از اونجا یاد گرفتیم