J2ME Część II. P.J.Podsiadły

Podobne dokumenty
Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

Java Platform Micro Edition

ZAPOZNANIE SIĘ Z TWORZENIEM

Programowanie aplikacji na urządzenia mobilne

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Wprowadzenie do J2ME

Java programowanie telefonów komórkowych Na podstawie:

J2ME. Java dla urz¹dzeñ mobilnych. Æwiczenia

Laboratorium z informatyki sem. III/ćw.12 Wydział Transportu PW 2018/19

public void startapp() { } public void pauseapp() { } public void destroyapp(boolean unconditional) { }

Laboratorium z informatyki sem. III/ćw.11 Wydział Transportu PW 2017/18

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 3

STWORZENIE PRZYKŁADOWEJ

M-biznes: Mobile Business. Realizacja aplikacji mobilnych w języku Java. Typy urządzeń przenośnych. Przykłady zastosowań

Tworzenie GUI wysokiego poziomu

Autor : Mateusz Kupczyk

Zaawansowane aplikacje internetowe

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

[Android] Podstawy programowania

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Programowanie w języku Java

Programowanie obiektowe zastosowanie języka Java SE

Piotr Orzechowski. Technologie Biznesu Elektronicznego

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

I2: J2ME programowanie w NetBeans IDE Wydział Transportu PW semestr /11

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe

Wykład 7: Pakiety i Interfejsy

Aplikacje w środowisku Java

Aplikacje internetowe i rozproszone - laboratorium

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Informatyka II. Laboratorium Aplikacja okienkowa

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

JDK 7u25 NetBeans Zajęcia 1 strona - 1

Programowanie urządzeń mobilnych na platformie Java ME

Projektowanie aplikacji internetowych laboratorium

Instalujemy środowisko. Hello World! Odczyt/zapis informacji do komponentów na formie. onclick()

Agata Gałecka, Martyna Sikorska, Tomasz Cebula. 28 kwietnia 2009

SEMINARIUM DYPLOMOWE

INSTRUKCJA DO ĆWICZENIA 13. Animacja wielowątkowa w aplikacjach JME. Gra logistyczna.

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Dodawanie nowego abonenta VOIP na serwerze Platan Libra

Języki i metody programowania Java Lab2 podejście obiektowe

1 Atrybuty i metody klasowe

Zaawansowane aplikacje WWW - laboratorium

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Galileo v10 pierwszy program

Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Aplikacje RMI Lab4

Przygotowanie środowiska Java do prawidłowej obsługi podpisu elektronicznego w epuap

Aplikacje w środowisku Java

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Laboratorium 7 Blog: dodawanie i edycja wpisów

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

Ćwiczenie 1. Przygotowanie środowiska JAVA

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Instrukcja laboratoryjna cz.3

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Ćwiczenia 9 - Swing - część 1

Programowanie na komórki

Fragmenty są wspierane od Androida 1.6

Zaawansowane aplikacje internetowe - laboratorium

Tworzenie własnych komponentów

Dokumentacja do API Javy.

Instrukcja instalacji i konfiguracji Karty EDGE/GPRS SonyEricsson GC85

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Programowanie obiektowe

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Opis dotyczy wykonania konfiguracji karty przy użyciu oprogramowania SimaticNet PC Software V6.2 oraz Simatic NCM PC.

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Mobilne aplikacje multimedialne

Java w Urządzeniach Mobilnych

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Języki i metody programowania Java. Wykład 2 (część 2)

Programowanie w języku Java dla urządzeń BlackBerry z pomocą Blackberry JDE Plugin for Eclipse

Kurs programowania. Wykład 6. Wojciech Macyna. 7 kwietnia 2016

Instalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności:

Delphi podstawy programowania. Środowisko Delphi

akademia androida Składowanie danych część VI

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Laboratorium programowania urządzeń mobilnych

Programowanie wielowarstwowe i komponentowe

Transkrypt:

J2ME Część II P.J.Podsiadły

Stany aplikacji

Szkielet aplikacji import javax.microedition.midlet.*; public class MyMIDlet extends MIDlet { public MyMIDlet() { // konstruktor } public void startapp() { // przejście w stan aktywny } public void pauseapp() { // stan wstrzymania } public void destroyapp( boolean unconditional) { // koniec aplikacji } }

Szkielet aplikacji cd. Aplikacja może zmieniać swój stan jeśli jest to potrzebne. Są zdefiniowane 3 metody (w javax.microedition.midlet.midlet) do przechodzenia aplikacji między stanami: public void notifypause() - informuje Java Application Manager-a że aplikacja przechodzi w stan wstrzymania public void resumerequest() - wywołujemy, jeśli jesteśmy zainteresowani przejściem w stan aktywny public void notifydestroyed() - jeśli chcemy zakończyć aplikację

KToolbar

1. Klikamy New Project 2. Wpisujemy nazwę projektu i klasy a następnie klikamy Create Project

3. Pojawia się okienko z opcjami projektu. Chwilowo ustawiamy Target platform na MIDP 1.0, a resztę pozostawiamy bez zmian. 4. Otrzymujemy komunikat: Project settings saved.

5. Szukamy katlogu w którym zainstalowany jest Wireless Toolkit, następnie wchodzimy do katalogu apps -> HelloWorld -> src W tym miejscu umieszczamy pliki źródłowe naszego programu. import javax.microedition.lcdui.*; import javax.microedition.midlet.*; //przykładowe hello world public class HelloWorldclass extends MIDlet { //display private Display display; // i text box do wyswietlenia tekstu TextBox box = null; //konstruktor public HelloWorldclass() { } //tutaj rozpoczyna sie wykonywanie programu public void startapp() { display = Display.getDisplay(this); box = new TextBox("prosty przyklad", "Hello world", 20,0); display.setcurrent(box); } public void pauseapp() { } //tutaj czyscimy wszystko czego nie wyczysci garbage collector public void destroyapp (boolean unconitional) { }}

6. Klikamy Open project i wskazujemy projekt HelloWorld 7. Wybieramy urządzenie docelowe (np. Default gray phone) a nstępnie Run

8. Jeśli w kodzie źródłowym nie było błędów powinniśmy zobaczyć emulator telefonu z wyświetloną listą MIDletów do uruchomienia. Strzałkami wybieramy HelloWorld (jesli mamy więcej niż jeden) i wciśkamy Launch. 9. Aplikację kończymy przy pomocy klawisza z czerwoną słuchawką.

Instalowanie aplikacji Aplikacje na urządzeniu użytkownika końcowego można zainstalować na 2 sposoby: 1. Korzystając z odpowiedniego kabla do transmisji danych lub innego połącznia (np. IRDa) 2. Korzystając z sieci Pierwsza metoda jest dobra dla urządzeń PDA, które często są podłączne do komputera w celu synchronizacji danych. Druga metoda jest lepsza dla telefonów komórkowych. Proces dostarczania MIDletów tą metodą nosi nazwę OTA (on-the-air) provisioning

Aby skorzystać z tej metody należy: - dodać nowy typ MIME do konfiguracji serwera www text/vnd.sun.j2me.app-descriptor jad Np. dla serwera Apache należy dodać następujący wpis do pliku web.xml <mime-mapping> <extension>jad</extension> <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type> </mime-mapping> - na stronie www (lub WAP) umieścić odpowiedni link: <a href= HelloWorld.jad >Kliknij aby zainstalować MIDlet</a>

Przykładowy plik JAD MIDlet-1: HelloWorld, HelloWorld.png, HelloWorldclass MIDlet-Jar-Size: 100 MIDlet-Jar-URL: HelloWorld.jar MIDlet-Name: HelloWorld MIDlet-Vendor: Unknown MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 UWAGI: Pliki JAD są case-sensitive, nazwa pliku JAD i JAR moze mieć max 16 znaków z rozszerzeniem (.JA?), Długość pliku JAR umieszczona w pliku JAR musi być dokładna Oprócz pliku JAR potrzeby jest także plik Manifest.mf (znajduje się w tym samym katalogu) oba pliki muszą mieć jednakowo ustawione atrybuty: MIDlet-Name, MIDlet-Version, MIDlet-Vendor jęsli będą one różne, telefon nie zainstaluje MIDletu

Budowanie GUI MDIP GUI posiada zarówno wysoko jak i niskopozimowe API które można wykorzystać we własnych aplikacjach. Wysokopozimowe API jest przeznczone dla plikacji dla których ważną cechą jest przenośność między rónymi urządzeniami. Ceną za przenośność jest niewielki wpływ na wygląd i zachowanie kontrolek. Wszytkie klasy które implementują wysokopoziomowe API dziedziczą po klasie javax. microedition.lcdui.screen

Niskopoziomowe API jest przeznaczone dla aplikacji, w których wymagana jest pełna kontrola nad tym co jest rysowane na ekranie, oraz kontrola nad zdarzeniami niskiego poziomu jak wciśnięcie poszczególnych klawiszy. To API jest implementowane przez klasy: javax.microedition.lcdui.canvas javax.microedition.lcdui.graphics Nie gwarantuje się, że applety wykorzystujące niskopoziomowe API będą w pełni przenośne, poniewarz mogą wykorzystywać specyficzne właściwości konkretnych urządzeń.

Display i Screen Aby wyświetlić cokolwiek na ekranie, trzeba uzyskać do niego dostęp. Ekran urządzenia reprezentowany jest przez klasę Display. Każdy aktywny MIDlet posiada tylko jedna instancję kalsy Display, która zapewnia dostęp do informacji o fizycznych możliwościach ekranu urządzenia. Obiekty klasy Screen enkapsulują złożone componenty interface-u użytkownika oraz zapewniają kontrolę nad wejściem danych. Obiekty klasy Screen są wyświtlane przez obiekt klasy Display przy użyciu metody setcurrent(). Każda aplikacja może posiadać kilka obiektów typu screen, ale tylko jednen z nich może być widoczny na ekranie, a użytkownik może się poruszać tylko w obrębie komponentów tego obiektu klasy Screen

Zależność między Display i Screen

lcdui package

Display Public class MYMIDlet extends MIDlet { Display display = null; List lista = null;... public void startapp() { display = Display.getDisplay(this); //pozostałe metody Uwaga: getdisplay() powinno być wywołane na początku startapp() a nie w konstruktorze. Wywołanie tej metody w kostruktorze nie gwarantuje poprawnego zaincjalizowania obiektu klasy Display szczegóły w specyfikacji MIDP

} lista = new List ( Przyklad, Choice.EXLUSIVE); lista.append( pierwszy, null); lista.append( drugi, null); display.setcurrent(lista); //wyświetlamy utworzony element GUI } Inne metody Display: public void setcurrent(alert alert, Displayable d); public Displayable getcurrent(); public boolean iscolor(); public int numcolors();

Screen Obiekt klasy screen może być jedną z następujących kontrolek: TextBox, Alert, Form, List Dodatkowo Screen może posiadać tytuł (Title) i Ticker do obsługi których służą następujące metody: public void settitle (String title); public String gettitle(); public void setticker (Ticker t); public Ticker getticker();

TextBox public TextBox(String title, String text, int maxsize, int constraints); Constraints: TextField.ANY, TextField.EMAILADDR TextField.NUMBER TextField.PASSWORD TextField.PHONENUMBER TextField.URL Ograniczenie PASSWD może być użyte z dowolnym innym przy pomocy operatora np. TextBox t = new TextBox ( tel,, 12, TextField.PHONENUMBER TextField.PASSWORD);

Alert Jest ekranem zawierającym tekst i grafike, zwykle służącym do przekazywania użytkownikowi informacji o błędach itp. public Alert (String title); public Alert (String title, String alerttext, Image alertimage, AlertType typ); inne metody: public int getdefaulttimeout(); public int gettimeout(); public void settimeout(int i); Alert alert = new Alert( Przyklad 1 ); alert.settimeout(4000);

Typy Alertów: AlertType.CONFIRMATION, AlertType.ALARM, AlertType.ERROR, AlertType.INFO AlertType.WARNING

List public List (String title, int listtype); public List (String title, int listtype, String[] elements, Image[] imelements); typy List Choice.EXCLUSIVE, Choice.IMPLICIT, Choice.MULTIPLE.

Inne metody: public int append(string element, Image imelemnt); public void insert (int index, reszta j.w.); public void set(int index, reszta j.w.); public void delete(int index); public int getselectedindex(); public boolean isselected(int index); public void setselectedindex(int index, boolean selected); public int getselectedflags(boolean[] selected); public void setselectedflags(boolean[] selected);

Form