ايران ويج

نسخه‌ی کامل: اشکال در لودImage
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
سلام . من نمیتونم Image را در برنامه ام بار گذاری کنم. و پیغام قسمتcatch() را بهم نشون میده.
میشه بگید چه جوری باید عکسم را توی فایل jar ذخیره کنم؟ تا بتونم عکسم را در گوشی ببینم. ( من با NetBeans کار میکنم.)
ممنون .منتظر جوابتون هستم. Biggrin
توی همون بازی پرنس که کد هاش هست عکس هم لود کردیم شاید تو فولدر درست نریختی یا آدرس رو درست نمی ده یه نگاه بکن
چی شده خانوما به موبایل پروگرامینگ علاقه مند شدن؟
مرسی نگاه می کنم. کی میگه این کارا مخصوص آقایونه. پروژه پایانی من Mobile Programming هست. 8) عکس را باید توی پوشه خود برنامه بگذاریم درسته؟
اگه اشتباه نکنم عکس باید تو پوشه SRC باشه و آدرس هم به این شکل
کد:
Image image = Image.createImage("/sp2.png");
من همین کار را میکنم ولی عکسم را بهم نشون نمیده.

,"")ImageItem logo=new ImageItem

("",Image.createImage("/2.png"), ImageItem.LAYOUT_DEFAULT
من این دستور رو مینویسم مثل کتاب. ولی درست اجرا نمیشه عکس هم تو پوشه srcگذاشتم.
کدها که بهم ریخته برنامه رو یه جا upload کن تا ببینم مشکل کجاست
می خوای اون / رو هم بردار ببین بازم مشکل داره یا نه پکیج jar رو هم با winrar باز کن ببین عکس تو ش هست یا نه
/ را هم برداشتم هیچ فرقی نکرد.عکسم هم توی فایل jar بود. پیغام قسمت catch را میده. آیا ربطی به حجم عکس داره؟ عکس من 129 kb هست.
شما خودتئن این کار رو انجام دادید؟
کدم به این شکله :
کد:
mainform=new Form(" Show Image ");
        try{
            ImageItem logo=new ImageItem("My Picture", Image.createImage("1.png"), ImageItem.LAYOUT_DEFAULT ," Enjoy");
             mainform.append(logo);
        }
        catch (Exception  e){
            mainform.append(new StringItem("","Image Not available"+e));
            
        }
منظورم کد کامل بود که بشه خطا ها رو هم دید و درستش کرد
این کد تا 200k هم امتحان کردم مشکلی نداره اگه به حجم شک داری م یتونی یه فایل کوچکتر رو امتحان کنی چون موبایل می تونه بر اساس midp و ... حجم براش مهم باشه
کد:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Midlet extends MIDlet {
    public void startApp() {
        javax.microedition.lcdui.Form mainform = new Form(" Show Image ");
        try{
            ImageItem logo=new ImageItem("My Picture", Image.createImage("/1.png"), ImageItem.LAYOUT_DEFAULT ," Enjoy");
             mainform.append(logo);
        }
        catch (Exception  e){
            mainform.append(new StringItem("","Image Not available -> "+e));
          
        }  
        javax.microedition.lcdui.Display.getDisplay(this).setCurrent(mainform);
    }
    
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
    }
}
مشکلم حل شد. ممنون. به خاطر این بود که من پسوند عکسم را با حروف کوچک می نوشتم .
برنامه Sprite که از روی کتاب نوشتم هیچerror نداره ولی در emulator که باید Midlet را انتخاب کنیم تا باز شود هیچ اتفاقی نمی افتد. من فکر میکنم مشکل از sprite باشه .
کد:
/*
* SpriteMidlet.java
*
* Created on August 20, 2007, 9:24 AM
*/

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

/**
*
* @author Leila
*/
  class ExampleGameCanvas extends GameCanvas implements Runnable {

    private boolean isPlay;
    private long delay;
    private int currentX,currentY;
    private int width,height;
    private Sprite sprite;
    private Sprite tempsprite;
    Image image;
    public ExampleGameCanvas() throws Exception {
        super(true);
        width=getWidth();
        height=getHeight();
        currentX=width/2;
        currentY=height/2;
        delay=20;
        //Load Images to sprite
        
        image=Image.createImage("/1.PNG" );
        Image temp=Image.createImage("/2.PNG");
        sprite=new Sprite(image, 32, 32);
        tempsprite=new Sprite(temp,32, 32);
    }
    //Automatically start thread for game loop
    public void start(){
        isPlay=true;
        Thread  t = new Thread(this);
        t.start();
    }
    public void stop(){
        isPlay=false;
    }
    public void run(){
        Graphics g=getGraphics();
        while(isPlay==true){
            input();
            drawScreen(g);
            try{
                Thread.sleep(delay);
            }
            catch(InterruptedException ie){}
        }
    }
    private void input(){
        int keyState=getKeyStates();
        sprite.setFrame(0);
        if((keyState & LEFT_PRESSED)!=0){
             currentX=Math.max(0,currentX-1);
             sprite.setFrame(1);
        }
         //right
         if((keyState & RIGHT_PRESSED)!=0)
             if(currentX+14<width){
                currentX=Math.min(width,currentX+1);
                sprite.setFrame(3);
         }
         //up
         if((keyState & UP_PRESSED)!=0){
             currentY=Math.max(0,currentY-1);
             sprite.setFrame(2);
         }
         //down
         if((keyState & DOWN_PRESSED)!=0)
             if(currentY+14<height){
                currentY=Math.min(height,currentY+1);
                sprite.setFrame(4);
             }
    }
    
    private void drawScreen(Graphics g){
         g.setColor(255, 0, 0);
         g.fillRect(0,0, getWidth(), getHeight());
         g.setColor(0,0, 255);
         //display sprites
         sprite.setPosition(currentX, currentY);
         sprite.setFrame(0);
         sprite.setVisible(true);
         sprite.paint(g);
         tempsprite.paint(g);
         flushGraphics();
    }
  
}
public class SpriteMidlet extends MIDlet {
    Display display;
    
    
    /** Creates a new instance of SpriteMidlet */
    public SpriteMidlet() {
    }
    
// --- This section is auto-generated by NetBeans IDE. Do not modify or you may lose your changes.//<editor-fold id="MVDMethods" defaultstate="collapsed" desc="This section is auto-generated by NetBeans IDE.">                      
    /**
     * This method initializes UI of the application.
     */
    private void initialize() {
    }
    
// --- This is the end of auto-generated section.//</editor-fold>                    
    
    public void startApp() {
        try{
          
            display = Display.getDisplay(this);
            ExampleGameCanvas gameCanvas = new ExampleGameCanvas();
            gameCanvas.start();
            display.setCurrent(gameCanvas);
        }
        catch(Exception ex){
            System.out.println(ex);
        }
    }
    
    
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
        notifyDestroyed();
    }
    
}
این کد کامل برنامه منه. میشه بگید مشکلش چیه؟
اگه برنامه Prince رو می گی که کاملش توی CD همراه کتاب هست کمپایل هم شده کار هم می کنه می تونی اول اون رو امتحان کنی شاید اشتباه تایپی یا چیز دیگه ای باشه
صفحه‌ها: 1 2 3 4