Как вызвать форму внутри другой формы, используя JME - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь изучить J2ME, и у меня проблема с формами.Моя проблема в том, что у меня есть две формы: «основная» и «приветственная».Я не могу понять, как вызвать форму «приветствия» из «основной» формы.Я хочу после запуска мидлета;Форма приветствия вызывается непосредственно основной формой.Пример моего кода показан ниже.

Этот код предназначен для формы приветствия (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).

1 Ответ

3 голосов
/ 25 февраля 2012

Надеюсь, этот код поможет вам:

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 - это менеджер отображения, который создается для каждого активного мидлета и предоставляет методы для получения информации о возможностях отображения устройства. Экран становится видимым, вызывая метод Display.setCurrent ().
Форма - это экран, который содержит произвольную смесь элементов (например, изображения, текст, текстовые поля, группы выбора). Форма является дочерним элементом экрана, а Screen реализует интерфейс Displayable.
Класс Displayable - это элемент пользовательского интерфейса, который может отображаться на экране устройства, в то время как класс Display абстрагирует функции отображения экрана фактического устройства и делает их доступными для вас. Он предоставляет методы для получения информации об экране и для отображения или изменения текущего элемента пользовательского интерфейса, который вы хотите отобразить. Таким образом, мидлет показывает элемент Displayable UI на Display с помощью метода setCurrent (элемент Displayable) класса Display. Класс Displayable реализует интерфейс Displayable.
Отображаемый объект - это объект, который может быть размещен на дисплее.
Ссылки:
Программирование MIDP GUI
Учебник по J2ME

...