środa, 16 lutego 2011

Pierwszy midlet

Utwórzmy nowy dostosowany do naszych potrzeb projekt w NetBeans

Wybieramy New Project z menu File a następnie zaznaczmy kategorie zgodne z rysunkiem poniżej


Klikamy Next > i wpisujemy nazwę naszego projektu np. MojPierwszyMidlet oraz odznaczamy opcje Create Hello MIDlet.


Możemy zakończyć tworzenie projektu klikając Finish i pominąć w tym MIDlecie wybór profilu i konfiguracji urządzenia. Terminy CLDC oraz MIDP wyjaśnie w następnych postach. Narazie skupmy się na szkielecie prostego MIDlet-u.

Utworzyliśmy więc nowy projekt, który jak widać w panelu Projects umieszczonym po lewej stronie nie ma jeszcze pliku z kodem źródłowym


Dodajmy teraz nowy MIDlet do naszego projektu. Menu File , New File i wybieramy opcje jak poniżej


Po kliknięciu Next > wpisujemy nazwę naszego midletu np MojMidlet. Pole Package na tym etapie możemy zostawić puste. Kończymy dodawanie pliku przyciskiem Finish.
Naszym oczom powinien ukazać się ten oto szkielet midletu

import javax.microedition.midlet.*;

/**
 * @author Lukasz
 */

public class MojMidlet extends MIDlet {

    public void startApp() {
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}

Nasza klasa MojMidlet dziedziczy po klasie MIDlet i musi nadpisywać (przesłaniać) jej abstrakcyjne metody:

startApp() - ustawia stan midletu na aktywny, tłumacząc niedosłownie uruchamia nasz midlet
pauseApp() - pauzuje nasz midlet np. w przypadku rozmowy przychodzącej
destroyApp(boolean unconditional)kończy działanie działanie midletu

Dodajmy trochę kodu tak aby nasz midlet wyświetlał na ekranie tekst "Pierwszy MIDlet". Umówmy się że nowo dodane linie będą pogrubione

import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.*;

public class MojMidlet extends MIDlet {
    private Display display;
    private Form form;

    public void startApp() {
        form = new Form(null);
        form.append("Pierwszy MIDlet");
        display = Display.getDisplay(this);
        display.setCurrent(form);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}


Zanim omówię co zrobiliśmy możemy uruchomić midlet wybierając Run Main Project z menu Run lub klikając ikonę uruchamiania na pasku narzędzi.

Uwaga do pierwszych lini 
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;

NetBeans umożliwia automatyczne importowanie potrzebnych nam klas za pomocą opcji Fix Imports z menu Source, wiec zamiast wpisywania ścieżek możemy użyć skrótu opcji Ctrl+Shift+I po ówczesnym zadeklarowaniu zmiennej referencyjnej do obiektu danej klasy (Form czy Display)

Wróćmy do naszego kodu. Mamy tu obiekt klasy Display, której używamy do wyświetlania na ekranie obiektów klas dziedziczących po klasie Displayable. W naszym przypadku jest to obiekt klasy Form, której konstruktor Form(null) tworzy pustą formę wyświetlaną później na ekranie. Gdybyśmy zmienili wywołanie konstruktora na

form = new Form("Jakis tekst");
efekt różniłby się o etykietę formy widoczną u góry ekranu



Metoda append("Pierwszy MIDlet") klasy Form umieszcza wpisany tekst na formie i wreszcie display.setCurrent(form) wyświetla naszą formę na ekranie.

Tak więc napisaliśmy pierwszy midlet posiadający jedna zasadniczą wadę - brak możliwości wyjścia z programu. Do poczytania o komendach wyjścia i nietylko oraz paru nowych rzeczach zapraszam do następnego posta.


1 komentarz:

  1. Supcio działa mi na komórce JESTEŚ WIELKI!
    Ps: 8/10 Nie wyjaśniłeś "display = Display.getDisplay(this);"

    OdpowiedzUsuń