2012-02-23 5 views
0

私はJ2MEを学びたいと思っています。フォームに問題があります。私の問題は、私は2つのフォーム、 'メイン'フォームと '挨拶'フォームがあるということです。私は「挨拶」フォームを「メイン」フォームから呼び出す方法を理解できません。ミッドレットが打ち上げられたら欲しい。グリーティングフォームは、メインフォームによって直接呼び出されます。私のコードのサンプルを以下に示します。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)
は、ミッドレット(FormMIDlet.java)のメインフォームである2番目の部分に表示されます。

+0

別の内側に一つの形を置くMIDP 2 APIでの方法はありません。画面の変更が必要な場合は、通常、あるフォームを別のフォームで上書きします。また、あなたのコードスニペットのこの部分はコンパイルされませんでした。 - 'greetingsDisplay = Display.getDisplay(this)' - これをチェックしましたか? – gnat

+0

ありがとうございますが、初心者です。私は前方への道を知らない。どのように "上書き"するのですか? – sammyukavi

+0

greetingFormを開くだけなので、あなたが望むのはばかげています。さらに、j2meでは小さなフォームを開いてログインを実行することはできません。 – pheromix

答えて

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()メソッドを呼び出すと、画面が表示されます。
フォームは、項目(画像、テキスト、テキストフィールド、選択肢グループなど)の任意の混合を含む画面です。フォームは画面の子であり、画面はDisplayableインターフェースを実装します。
Displayableクラスはデバイスの画面に表示できるUI要素で、Displayクラスは実際のデバイスの画面の表示機能を抽象化して利用できるようにします。画面に関する情報を取得し、表示する現在のUI要素を表示または変更する方法を提供します。したがって、MIDletは、DisplayクラスのsetCurrent(Displayable要素)メソッドを使用してDisplay上にDisplayable UI要素を表示します。DisplayableクラスはDisplayableインタフェースを実装します。
表示可能オブジェクトは、ディスプレイに配置できる機能を持つオブジェクトです。
参考文献:
MIDP GUI Programming
J2ME Tutorial

+0

が表示されます。これは私のために働く。 – sammyukavi

関連する問題