2012-02-23 15 views
0

我努力學習J2ME和我有一個形式問題,另一個表單中。我的問題是我有兩種形式,一種「主要」形式和一種「問候」形式。我無法弄清楚如何從'主'形式調用'問候'形式。我想要一旦midlet啓動;問候形式直接由主窗體調用。我的代碼示例如下所示。如何調用形式使用JME

該代碼可用於問候表格(greetingsClass.java)

import javax.microedition.lcdui.*; 

public class greetingsClass { 

public Display greetingsDisplay; 
public Form loginform; 

public void login() 
{ 
    loginform = new Form("Login Class Form"); 
    loginform.append("Ok! Iside login Classs form"); 
    greetingsDisplay = Display.getDisplay(this); 
    greetingsDisplay.setCurrent(loginform); 

} 
} 

此代碼是主要形式(FormMIDlet.java)

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

public class FormMIDlet extends MIDlet { 

public Display FormMIDletdisplay; 
public Form MainMIDletform; 
public LoginClass LoginFormObject; 

public void startApp() { 
MainMIDletform = new Form("Main Class Form"); 
MainMIDletform.append("Calling LoginClass Form"); 
FormMIDletdisplay = Display.getDisplay(this); 
FormMIDletdisplay.setCurrent(MainMIDletform); 

} 

public void pauseApp() {} 

public void destroyApp(boolean unconditional) { 
notifyDestroyed(); 
} 
} 

我想在第一部分的形式代碼(greetingsClass.java)
將顯示在midlet的主要形式(FormMIDlet.java)的第二部分中。

+0

有一個在MIDP 2.0 API沒有辦法把一個表單中的另一個。當屏幕需要改變時,通常只是用另一種形式「覆蓋」一種形式。此外,你的代碼片段的這部分不會編譯 - 「greetingsDisplay = Display.getDisplay(this)' - 你檢查了嗎? – gnat 2012-02-23 05:45:52

+0

謝謝,但我是一個新手。我不知道前進的方向。我如何「覆蓋」? – sammyukavi 2012-02-23 07:30:26

+0

你想要什麼是荒謬的,因爲你應該簡單地打開greetingForm。另外在j2me中,您無法打開一個小表單來執行登錄。 – pheromix 2012-02-23 11:01:55

回答

3

我希望這段代碼可以幫助您:

import javax.microedition.lcdui.Command; 
import javax.microedition.lcdui.CommandListener; 
import javax.microedition.lcdui.Display; 
import javax.microedition.lcdui.Displayable; 
import javax.microedition.lcdui.Form; 
import javax.microedition.midlet.*; 


public class myMidlet extends MIDlet implements CommandListener { 

    private Form greetings; 
    private Form MainForm; 
    private Command okCommand; 
    Display display; 

    public myMidlet() { 
     display = Display.getDisplay(this); 
     greetings = new Form("greetings"); 
     MainForm = new Form("MainForm"); 
     okCommand = new Command("Ok", Command.OK, 0); 
     MainForm.addCommand(okCommand); 
     MainForm.setCommandListener(this); 
    } 

    public void startApp() { 
     MainForm.append("This is MainForm"); 
     display.setCurrent(MainForm); 
    } 

    public void pauseApp() { 
    ... 
    } 

    public void destroyApp(boolean unconditional) { 
    ... 
    } 

    public void commandAction(Command cmnd, Displayable dsplbl) { 
     if (cmnd == okCommand) { 
      greetings.append("This is greeting Form"); 
      display.setCurrent(greetings); 
     } 
    } 
} 

Display類是實例爲每一個活動的MIDlet,並提供方法來檢索有關該設備的顯示功能信息顯示管理器。通過調用Display.setCurrent()方法使屏幕變得可見。
A表格是包含項的任意混合物的屏幕(圖像,文本,文本字段,選擇基團,例如。)形式是屏幕的子屏幕,並實現了可顯示接口。
可顯示的類是可在設備的屏幕上顯示,而顯示類抽象實際裝置的畫面的顯示的功能,並使它們可給你的UI元素。它提供了獲取有關屏幕信息的方法,並顯示或更改要顯示的當前UI元素。因此,MIDlet使用Display類的setCurrent(Displayable element)方法在Display上顯示Displayable UI元素.A Displayable類實現Displayable接口。
可顯示對象是一個能夠放置在顯示器上的對象。
參考文獻:
MIDP GUI Programming
J2ME Tutorial

+0

謝謝。這對我有用。 – sammyukavi 2012-02-27 15:02:53