2011-11-10 54 views
-1

我是LWUIT的新手,儘管我發現使用它非常有趣,但我一直面臨着預覽我生成的任何MIDlet的挑戰。每次我在模擬器中運行MIDlet時,都會在模擬器的屏幕上顯示一個ArrayOutOfBOundException作爲窗體,並且只有在窗體上按OK後纔會退出。LWUIT ArrayOutOfBoundException

這是我的代碼

import javax.microedition.midlet.*; 

    import com.sun.lwuit.*; 
    import com.sun.lwuit.events.*; 
    import com.sun.lwuit.Form; 
    import com.sun.lwuit.plaf.UIManager; 
    import com.sun.lwuit.util.Resources; 
    import java.io.IOException; 

    public class Ruwwa extends MIDlet implements ActionListener { 
     public void startApp() { 
     Display.init(this); 

    Form f = new Form(""); 

    f.setTitle("Mairuwa Portal"); 

    Label bottomText = new Label(); 
    bottomText.setText("Welcome to the Mairuwa Portal"); 
    bottomText.setTextPosition(Component.CENTER); 
    f.addComponent(bottomText); 

    Command exitCommand = new Command("Exit"); 
    f.addCommand(exitCommand); 
    f.addCommandListener(this); 

    f.show(); 

    try { 
     Resources r = Resources.open("/res/working.res"); 
     UIManager.getInstance().setThemeProps(r.getTheme("Mairuwa Theme")); 
     } catch (IOException ioe) { 
      // Do something here. 
     } 

    } 

    public void pauseApp() {} 

    public void destroyApp(boolean unconditional) {} 

    public void actionPerformed(ActionEvent ev) { 
     Label label = new Label(); 
     label.setText("Initiating IO, please wait..."); 
     Display.getInstance().invokeAndBlock(new Runnable() { 
    public void run() { 
     // perform IO operation... 
     } 
    }); 
    label.setText("IO completed!"); 
    // update UI... 
     } 
    } 

它的形式顯示出來這個代碼,但它並沒有顯示它的主題我created.The主題的名稱是「working.res」和我把它在res文件夾中。謝謝

+4

向我們展示你的代碼,我們也許能夠幫助 –

回答

1

即時通訊運行您的代碼即時通訊illegalargumentexception在這條線上,bottomText.setTextPosition(Component.CENTER);

因爲您不能將標籤文本位置設置爲Component.CENTER。您應該使用標籤文本位置作爲LEFT/RIGHT/BOTTOM/TOP。如上所述,如果更改標籤文本位置,它將正常工作。

所以,如果你得到ArrayOutOfBOundException,你在其他地方犯了一個錯誤。嘗試調試你的應用程序,找出你犯了什麼錯誤。

更新:

Display.init(this); 
try { 
     Resources r = Resources.open("/res/working.res"); 
     UIManager.getInstance().setThemeProps(r.getTheme("Mairuwa Theme")); 
    } catch (IOException ioe) { 
      // Do something here. 
    } 
    // your code. 
+0

我做了什麼,你告訴我,我有mentioned.The問題是,實際上LABEL確實顯示,但它沒有出現在主題上。主題根本沒有出現。我無法將標籤貼在主題和其他gui組件上。感謝 – fyzil

+0

您在顯示「Form」後調用了'Resource'。這是不對的。嘗試調用Display.init(this);'下方的'Resource'。看看我的更新。 – bharath

+0

主題的路徑也可能不正確。如果主題在jar的根目錄下,它應該是/ not/res。 –