MATERIAŁY POMOCNICZE DO ĆWICZENIA 11. Na tym logicznym ekranie wyświetlić możemy instancje klas wywiedzionych z abstrakcyjnej klasy Displayable.

Podobne dokumenty
Tworzenie kwerend. Nazwisko Imię Nr indeksu Ocena

stworzyliśmy najlepsze rozwiązania do projektowania organizacji ruchu Dołącz do naszych zadowolonych użytkowników!

Instrukcja korzystania z serwisu Geomelioportal.pl. - Strona 1/12 -

imię kod ulica prześlij Dzięki formularzom możliwe jest pobieranie danych, a nie tylko ich wyświetlanie.

Lekcja 1:.Powtórka. <head> <title>kurs HTML</title> </head> <body> <p>to jest tresc...</p> </body>

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 10

Writer edytor tekstowy.

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 11

Opis i specyfikacja interfejsu SI WCPR do wybranych systemów zewnętrznych

Poniżej krótki opis/instrukcja modułu. Korekta podatku VAT od przeterminowanych faktur.

SENTE CMS zarządzanie treścią witryny internetowej

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 7

Oznaczenie CE. Ocena ryzyka. Rozwiązanie programowe dla oznakowania

Instrukcja użytkownika

Nowe funkcje w programie Symfonia e-dokumenty w wersji Spis treści:

Jak założyć blog na platformie blogów CEO w 3 krokach

Skróty klawiszowe Window-Eyes

Nowe funkcje w module Repozytorium Dokumentów

Bożena Czyż-Bortowska, Biblioteka Pedagogiczna w Toruniu

Twój partner w biznesie Instrukcja obsługi SPIS TREŚCI 1. Otwieranie panelu administracyjnego... 2

Do zarządzania kontami uŝytkowników naleŝy ich zakładanie, usuwanie, modyfikowanie, zmiana hasła oraz szereg dodatkowych czynności.

MultiInfo SOHO. w Instrukcja obsługi dla administratora klienta

Sugerowany sposób rozwiązania problemów. Istnieje kilka sposobów umieszczania wykresów w raportach i formularzach.

Zintegrowany system obsługi przedsiębiorstwa. Migracja do Firebird 2.x

Ćwiczenie 4 moduły KSIĘGA PODATKOWA

Przestrzeń papier / model

KASPERSKY LAB. Kaspersky Administration Kit wersja 6.0. Podręcznik administratora

Parametryzacja modeli części w Technologii Synchronicznej

"Pies" P i e s \0. Prawidłowy zapis wymaga wykorzystania funkcji strcpy() z pliku nagłówkowego string.h: char txt[10]; strcpy(txt, Pies );

Katalog książek cz. 1

PSO matematyka I gimnazjum Szczegółowe wymagania edukacyjne na poszczególne oceny

Statystyka - wprowadzenie

ZESPÓŁ LABORATORIÓW TELEMATYKI TRANSPORTU ZAKŁAD TELEKOMUNIKACJI W TRANSPORCIE WYDZIAŁ TRANSPORTU POLITECHNIKI WARSZAWSKIEJ

Przeciążanie metod i operatorów

WYMAGANIA EDUKACYJNE Z INFORMATYKI

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

Sekcja B. Okoliczności powodujące konieczność złożenia deklaracji.

Optymalne przydzielanie adresów IP. Ograniczenia adresowania IP z podziałem na klasy

Opis pliku XML Wersja 6.0

Moduł Konsolidacji Sprawozdań wersja

Program dla praktyki lekarskiej. Instrukcja drukowania recept

Instrukcja dla użytkownika Płockiej Platformy Teleinformatycznej E - Urząd

DOKUMENTACJA WYPEŁNIANIA DEKLARACJI ELEKTRONICZNYCH ONLINE

RGB16- TELEBIMY FULL KOLOR-PAMIĘĆ WBUDOWANA (RASTER 16mm) Oferta ważna od r.

RGB25- TELEBIMY FULL KOLOR-PAMIĘĆ WBUDOWANA (RASTER 25mm) Oferta ważna od r.

QuarkXpress skład i publikacja operacje podstawowe

WYPOSAŻENIE. Dokumentacja eksploatacyjna

Instrukcja obsługi plusbank24

Programowanie aplikacji na urządzenia mobilne

WPROWADZENIE Kurs DO WIT INTERNETU WSISIZ Wyższa Szkoła Informatyki Stosowanej i Zarządzania WIT

Kadry i Płace. Moduł Płace i Kadry składa się z siedmiu działów:

Zapytanie ofertowe. Stworzenie inteligentnych narzędzi do generacji i zarządzania stron internetowych (SaaS+WEB2.0),

Przewodnik po e-sklepie

Zmiany funkcjonalne wprowadzone w Comarch ERP XL w wersji

Instrukcja obsługi aplikacji internetowej Oświatowe wskaźniki odniesienia

Instrukcja serwisu e-wyniki dla Pacjenta

Dokumentacja użytkownika systemu

o o o o o o o o o Wersja /09/2015

TEMAT: Rysowanie krzyżówek z wykorzystaniem programu komputerowego Microsoft Word.

System CDN OPT!MA v Generator Raportów (GenRap) Kraków, Al. Jana Pawła II 41g tel. (12) , fax (12)

RGB20- TELEBIMY FULL KOLOR-PAMIĘĆ WBUDOWANA (RASTER 20mm) Oferta ważna od r.

Operatory odległości (część 2) obliczanie map kosztów

COMARCH ERP E-SKLEP...

Standardy zapisu Dokumentów Planistycznych na potrzeby importu i eksportu dokumentów w ramach Modułu RP

Instrukcja obsługi Panelu Sklep

TWORZENIE PREZENTACJI MULTIMEDIALNYCH W PROGRAMIE MICROSOFT POWERPOINT

SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA

Kliknij przycisk Start > Panel sterowania > Konta użytkowników > Poczta (w widoku

Współpraca programów WINBUD Kosztorys i Symfonia Handel premium I Informacje ogólne

System CDN OPT!MA v Generator Raportów (GenRap) Kraków, Al. Jana Pawła II 41g tel. (12) , fax (12)

1. Opis modułów Moduły FAKTURY i HANDEL

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Baza Aktów Własnych Opis produktu. Zastosowanie, Wykaz funkcjonalności, Cennik.

Laboratorium 5 Zend Framework: lista zadań

Opis zmian w Rewizorze GT wersja 1.15

Projektowanie systemów informatycznych

SMiS INSTRUKCJA OBSŁUGI. ZABEZPIECZEŃ SERII mzaz SYSTEM MONITORINGU I STEROWANIA

Korzystanie z przeglądarki jest bardzo proste i można je przedstawić w kilku etapach, które zostaną pokrótce omówione:

Procedury i instrukcje związane z ochroną danych osobowych w szkole

Wstęp do MS ACCESS. 1. Wprowadzenie

CERTO program komputerowy zgodny z wytycznymi programu dopłat z NFOŚiGW do budownictwa energooszczędnego

Instrukcja serwisu e-wyniki dla Kontrahenta

Wykrywanie i usuwanie uszkodzeń w sieci

Zmiany funkcjonalne wprowadzone w wersji

Partner projektu F5 Konsulting Sp. z o.o. ul. Składowa 5, Poznań T: F:

1 Historia i cechy C++ 2 PRZYDATNE KONSTRUKCJE

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 8

Instrukcja obsługi plusbank24

Skaner mks_vir dla Exchange

POWIATOWY URZĄD PRACY W GRUDZIĄDZU ul. Parkowa 22, Grudziądz, tel. (056) , fax. (056) ;

Inżynieria Oprogramowania 2013/14. Testy integracyjne

Java programowanie telefonów komórkowych Na podstawie:

Wstęp do środowiska ILWIS

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

Wstęp. 2. Definicje. 3. Warunki zawarcia umowy

Baza aktywności e-learningowej uczelni

Instrukcja pomocnicza do przygotowania sprawozdania LE ITS

Zarządzanie pamięcią operacyjną

amjam 2015 Regulamin

Transkrypt:

MIDlet - Interfejs użytkwnika MATERIAŁY POMOCNICZE DO ĆWICZENIA 11 Obiekt klasy Display jest lgiczną reprezentacją ekranu. Każdy uruchminy MIDlet ma dedykwany dkładnie jeden taki biekt i mże pzyskać referencję d nieg pprzez wywłanie metdy public static Display getdisplay(midlet midlet) Metda ta zwróci czywiście ten sam wskaźnik, niezależnie d miejsca, w którym zstanie wywłana (pcząwszy d metdy startapp() - na destryapp() skńczywszy). Wart więc przechwać tę referencję w zmiennej typu Display. Na tym lgicznym ekranie wyświetlić mżemy instancje klas wywiedzinych z abstrakcyjnej klasy Displayable. Diagram klas dziedziczących z Displayable Displayable Legenda: Klasa Klasa abstrakcyjna Bezpśredni z klasy Displayable wywiedzine są również abstrakcyjne klasy Screen i Canvas. Reprezentują ne dwa spsby twrzenia GUI naszej aplikacji. Odpwiedni utwrzny ekran wyświetlamy za pmcą następującej metdy klasy Display: public vid setcurrent(displayable displayable) Pbieramy natmiast aktualnie wyświetlany Displayable metdą: public Displayable getcurrent() Interfejs wyskieg pzimu Dzięki klasm wywiedzinym z klasy Screen mżemy twrzyć interfejs wyskieg pzimu - wykrzystując d teg kmunikaty, frmularze, listy raz pla tekstwe. Dają ne bardz duże mżliwści. W łatwy spsób, b z gtwych elementów, twrzyć mżemy części naszej aplikacji (menu z iknami, zaawanswane frmularze, itp.), które ddatkw swój wygląd przystswują d urządzenia, na którym aplikacja jest uruchamiana. Znaczy t, iż wygląd elementów GUI wyskieg pzimu determinuje maszyna Javy knkretneg urządzenia. Oznacza t jednak również t, iż wyglądu tych elementów nie jesteśmy w stanie kntrlwać. W ćwiczeniu zastswaliśmy klasę Frm, wywiedziną z klasy Screen, umżliwiającą w prsty spsób twrzyć frmularze z pjedynczych elementów. Frmularz utwrzyliśmy jak pusty biekt klasy Frm, psiadający jedynie tytuł. Zastswaliśmy knstruktr: public Frm(String title); D tak utwrzneg frmularza mżna ddawać klejne elementy za pmcą metdy: public vid append(item item); W ćwiczeniu wystąpiły elementy klas StringItem i TextField Element klasy StringItem służy d wyświetlania tekstu pprzedzneg etykietą. Klasa ma knstruktr: public StringItem(String label, String text) Element klasy TextField umżliwiającym użytkwnikwi wprwadzanie tekstu. Knstruktr klasy TextField jest następujący: public TextField(String label, String text, int maxsize, int cnstraints) gdzie: Alert Screen Canvas label tytuł pla text - pczątkwa jeg zawartść pla tekstweg maxsize - maksymalna liczba znaków wpisanych w ple tekstwe cnstraints - graniczenia nałżne na dane wprwadzane d pla tekstweg. Argument ten przyjmuje wartść jednej ze stałych zdefiniwanych w klasie TextField. Przykładwe wartści : TextField.ANY - użytkwnik mże wprwadzić dwlną treść. TextField.NUMERIC - granicza wprwadzane znaki d liczb. Pierwszy znak mże być znakiem minus. Frm List TextBx Materiały d użytku wewnętrzneg. Opracwał Zbigniew JANIK 1

Klasa Cmmand i interfejs CmmandListener D sterwania przebiegiem prgramu służą kmendy udstępniane przez klasę Cmmand, która psiada jeden knstruktr: public Cmmand(String label, int type, int pririty) Stwrzna w ten spsób kmenda ma następujące atrybuty: label - etykieta kmendy wyświetlana na ekranie type - typ kmendy wartści jednej z pniższych zdefiniwanych w klasie Cmmand stałych: OK BACK CANCEL STOP EXIT HELP SCREEN ITEM Ich znaczenie dpwiada znaczeniu słwa je definiującemu. pririty - kreśla prirytet utwrznej kmendy. Znaczenie etykiety jest dsyć intuicyjne. Typ i prirytet pmagają z klei maszynie knkretneg urządzenia zdecydwać, które kmendy będą dstępne bezpśredni, a d których dstęp będzie wymagał np. rzwinięcia dpwiednieg menu. Utwrzywszy kmendę, nie mżemy już zmienić żadnej z jej trzech przytcznych parametrów. Mżemy ją za t wyświetlić na ekranie. Pjedyncza instancja kmendy mże być ddana d wielu instancji Displayable. Dknujemy teg krzystając z metdy tej klasy już wspmnianej przy jej mawianiu: public vid addcmmand(cmmand cmd) Każdy Displayable ma również metdę pzwalającą zarejestrwać CmmandListener, który będzie pwiadamiany wszystkich aktywwanych kmendach: public vid setcmmandlistener(cmmandlistener l) CmmandListener jest interfejsem psiadającym tylk jedną metdę: public vid cmmandactin(cmmand c, Displayable d) Jeśli więc chcemy perwać kmendami w naszej aplikacji, jedna z naszych klas musi implementwać ten interfejs. Wówczas w metdzie cmmandactin() mżemy rzpznać wywłaną kmendę i aktywny Displayable, i dpwiedni na nią zareagwać. Twrzenie frmularzy - klasa Frm Frm jest klasą wywiedziną z klasy Screen, umżliwiającą w bardz prsty spsób twrzyć frmularze z pjedynczych kntrlek. Wszystkie te elementy wywiedzine są z klasy Item pakietu javax.micreditin.lcdui. Pniższy diagram prezentuje klasy wywiedzine z Item: Diagram klas dziedziczących z klasy abstrakcyjnej Item Item ChiceGrup DateField Gauge ImageItem StringItem Spacer TextField Wspólną cechą tych klas jest m.in. psiadanie etykiety i związane z tym metdy: public String getlabel(); public vid setlabel(string label); Frmularz mżemy twrzyć na dwa spsby. Pierwszy plega na stwrzeniu pusteg biektu klasy Frm, psiadająceg jedynie nagłówek i ddawaniu d nieg klejnych elementów. Wtedy knstruktr wygląda następując: public Frm(String title); Klejne elementy d frmularza ddawać mżemy za pmcą metdy append() sygnaturze: public vid append(item item); Mżemy również utwrzyć zestaw kntrlek klasy Item, składających się na nasz frmularz, i ddać je d nieg krzystając z pniższeg knstruktra klasy Frm: public Frm(String title, Item[] items); Materiały d użytku wewnętrzneg. Opracwał Zbigniew JANIK 2

Dynamiczne kntrlwanie zawartści frmularza Pdczas działania aplikacji, mżemy dynamicznie kntrlwać zawartść biektów typu Item na frmularzu Oprócz przywłanej wcześniej metdy append(), służą d teg metdy wymienine pniżej. Ich znaczenie pdan w kmentarzu. public vid delete(int index); // usuwanie kntrlki indeksie pdanym przez parametr public Item get(int index); // pbranie kntrlki indeksie pdanym przez parametr public vid insert(int index, Item item); // wstawianie przed element indeksie index, kntrlki nazwie item public vid set(int index, Item item); // zastępuje element indeksie index elementem item pdanym drugim parametrem public int size();// zwraca liczbę elementów klasy Item na frmularzu Uwaga!!! w przeciwieństwie d kmend - elementy klasy Item mgą być ddane tylk d jedneg frmularza! Składwe frmularza - biekty klasy Item StringItem Najprstszy z elementów budujących frmularze w MIDP. Psiada jeden knstruktr: StringItem(String label, String text) Oba pla są pcjnalne. Mżna więc - abstrahując d senswnści takieg działania - stwrzyć biekt, w którym ba pla będą miały wartść null. Klasa StringItem ddaje d dziedziczneg interfejsu klasy Item dwie pniżej pdane metdy. Wywłane na rzecz knkretneg biektu klasy StringItem mają znaczenie pisane w kmentarzu: public String gettext() // pbiera tekst wprwadzny d kntrlki typu StringItem public vid settext(string text) // ustawia tekst dpwiedniej właściwści kntrlki typu StringItem Aby ddać element typu StringItem d frmularza mżna użyć wspmnianeg knstruktra klasy StringItem, a następnie ddać g d frmularza przy pmcy przywłanej wcześniej metdy append() klasy Frm Na przykład: Frm frm = new Frm("Nagłówek"); frm.append(new StringItem("Etykieta", "Treść elementu Mżemy przejść d \n Nwej linii")); Jest jeszcze mżliwść skrócenia kdu, dzięki innej wersji metdy append. Dwa pniższe zapisy są więc tżsame: Frm frm = new Frm("Nagłówek"); frm.append("treść elementu."); Frm frm = new Frm("Nagłówek"); frm.append(new StringItem(null, "Treść elementu.")); Przykład zastswania StringItem zademnstrwany zstanie przy kazji prezentwania różnych rdzajów TextField w akapitach pniżej. TextField TextField jest elementem frmularza umżliwiającym użytkwnikwi wprwadzanie tekstu. Pprzedni mawiany element Item: StringItem nie umżliwiał użytkwnikwi żadnej interakcji. Knstruktr klasy TextField jest następujący: public TextField(String label, String text, int maxsize, int cnstraints) Znaczenie argumentów knstruktra: label- ciąg znaków służący d pisu pla tekstweg text - ciąg znaków którym ple tekstwe zstanie wypełnine przy jeg inicjalizacji, czyli pczątkwa jeg zawartść. maxsize - maksymalna liczba znaków wpisanych w ple tekstwe. Wartść ta mże być ustawina również w trakcie działania aplikacji dzięki metdzie setmaxsize(int maxsize). cnstraints - graniczenia nałżne na dane wprwadzane d pla tekstweg. Argument ten przyjmuje wartść jednej ze stałych zdefiniwanych w klasie TextField. Ot te stałe wraz z ich znaczeniem: TextField.ANY - użytkwnik mże wprwadzić dwlną treść. TextField.NUMERIC - granicza wprwadzane znaki d liczb całkwitych. Pierwszy znak mże być znakiem minus. TextField.DECIMAL - granicza wprwadzane znaki d liczb rzeczywistych, gdzie separatrem jest krpka. Pierwszy znak mże być znakiem minus. Materiały d użytku wewnętrzneg. Opracwał Zbigniew JANIK 3

TextField.PASSWORD - znacza, iż ple ma przechwywać hasł. Wiąże się t czywiście ze specjalnym jeg frmatwaniem. Mżna tę stałą zsumwać lgicznie z jedną z dwóch innych stałych: TextField.ANY lub TextField.NUMERIC, np: TextField.PASSWORD TextField.NUMERIC znacza, iż wprwadzne dane będą mgły być tylk cyframi, a frmatwane będą jak hasł. Ograniczenia na rdzaj wpisywanych znaków d pla tekstwe mżemy również ustalać p zainicjwaniu biektu. Służy d teg metda: public vid setcnstraints(int cnstraints) Wybrane metdy klasy TextField; public String getstring() // pbranie tekstu z pla tekstweg public vid setstring(string text) // wstawienie tekstu d pla tekstweg public vid delete(int ffset, int length) // usunięcie z pla tekstweg ciągu znaków długści length pcząwszy d znaku indeksie ffset public vid insert(string src, int psitin) // wstawienie d pla tekstweg łańcucha src za znak dtychczasweg tekstu indeksie psitin ChiceGrup ChiceGrup t klejny element Frmularza Frm. Umżliwia ddanie kilku pól pcji wybru. W zależnści d typu pla ChiceGrup mżna wybrać jedną lub wiele pcji. T rzróżnienie pmiędzy typami pól następuje już przy ich twrzeniu. Ot dwa knstruktry: public ChiceGrup(String label, int chicetype); public ChiceGrup(String label, int chicetype, String[] strings, Image[] images); Typ grupy elementów kreślamy w drugim parametrze knstruktra, pdając jedną z dwóch stałych zdefiniwanych w interfejsie Chice, implementwanym m.in. przez ChiceGrup: Chice.EXCLUSIVE - tylk jeden element z całej grupy mże być wybrany. Najczęściej wizualnie są te elementy przedstawiane jak zbiór dpwiedników kntrlek typu RadiButtns. Chice.MULTIPLE - ilść zaznacznych elementów jest dwlna. Najczęściej przy elementach takiej grupy widczne są dpwiedniki kntrlek typu CheckBx. Chice.POPUP - tylk jeden element z całej grupy (listy rzwijalnej) mże być wybrany. Jest t dpwiednik znanej listy typu CmbBx Przedstawin dwa mżliwe d wykrzystania knstruktry. Jeśli skrzystamy z pierwszeg, stwrzymy pusty biekt ChiceGrup. Wtedy, aby ddać d nieg pcje wybru, krzystamy z pniższej metdy (zadeklarwanej już w interfejsie Chice): int append(string stringpart, Image imagepart); gdzie: String stringpart - ciąg znaków, wyświetlany na ekranie (nie mże mieć wartści null) Image imagepart,. ikna, która wyświetlana jest z ciągiem znaków stringpart. (Ten argument nie jest knieczny) Metda zwraca indeks ddaneg elementu, który zstanie ddany na kniec grupy. Indeks ten będzie identyfikwał element i mże być użyty d jeg ewentualnej mdyfikacji. Jeśli natmiast d pczątku znamy elementy, które składać się będą na naszą grupę, wówczas mżemy stwrzyć z nich tablicę i skrzystać z drugieg knstruktra. Są tutaj jednak następujące restrykcje: argument strings nie mże być null i nie mże zawierać elementów null raz tablice strings i images muszą mieć taki sam rzmiar. Zmianę wybru elementów chicegrup badamy wykrzystując dłączny d frmularza interfejs ItemStateListener, wówczas najpewniej będziemy chcieli sprawdzić stan elementów należących d grupy. Przydatne każą się wówczas następujące metdy (również z interfejsu Chice): public int size();() // zwraca ilść elementów dłącznych d grupy public blean isselected(int index); //sprawdza czy element pdanym indeksie jest zaznaczny public int getselectedindex(); //zwraca indeks wybraneg elementu (Dla biektów ChiceGrup typu MULTIPLE metda ta zawsze zwróci wartść -1) public int getselectedflags(blean[] flags);// wypełnia tablicę flag pdaną jak argument wartściami true, jeśli pcje są zaznaczne, lub false - w przeciwnym wypadku (pdana tablica musi mieć długść przynajmniej równą wielkści zwracanej przez metdę size()!). Metda zwraca ilść wybranych elementów w grupie. D zmian zawartść elementu ChiceGrup, prócz metdy append(), służą jeszcze następujące metdy. public vid insert(int index, String string, Image image); // wstawienie d elementu ChiceGrup ddatkwej pcji string z brazkiem image za pcję indeksie index public vid set(int index, String string, Image image); Materiały d użytku wewnętrzneg. Opracwał Zbigniew JANIK 4

// wstawienie d elementu ChiceGrup nwej pcji string z brazkiem image w miejsce dtychczaswej pcji indeksie index public vid delete(int index); // usunięcie wybranej pcji elementu ChiceGrup indeksie index Gauge Obiekt Gauge frmularza Frm, umżliwia utwrzenie graficzneg elementu w pstaci prstkąta przedstawiająceg wartści całkwite. Obiekt klasy Gauge twrzymy stsując knstruktr: public Gauge(String label, blean interactive, int maxvalue, int initialvalue) gdzie: String label etykieta pisująca utwrzny element blean interactive - lgiczny parametr, któreg wartść true kreśla tryb interaktywny, a false nieinteraktywny (tzn. czy użytkwnik mże, czy nie mże zmieniać wartści biektu ) int maxvalue - dana maksymalna wartść wskazywana przez biekt graficzny Gauge (musi być większa niż zer lub równa specjalnej wartści INDEFINITE, w przeciwnym przypadku następuje wyjątek) int initialvalue wyświetlana pczątkwa wartść na biekcie Gauge Jeśli maksymalna wartść jest większa niż zer, t biekt Gauge ma ustalny zakres [0 maxvalue] i wtedy initialvalue musi być pdana z teg przedziału. Jeśli natmiast parametr interactive ma wartść false, a maksymalna wartść jest równa INDEFINITE, wtedy zstanie utwrzny nieinteraktywny biekt Gauge z nieskńcznym zakresem. Wówczas initialvalue musi być jedną z predefiniwanych wartści : CONTINUOUS_IDLE //wartść tej zmiennej =0 INCREMENTAL_IDLE //wartść tej zmiennej =1 CONTINUOUS_RUNNING //wartść tej zmiennej =2 INCREMENTAL_UPDATING //wartść tej zmiennej =3 Dstępne metdy dla biektu typu Gauge public vid setvalue(int value) // ustawia nwą bieżącą wartść dla biektu Gauge. public int getvalue() // pbiera bieżącą wartść z biektu Gauge public vid setmaxvalue(int maxvalue) ) // ustawia nwą maksymalną wartść dla biektu Gauge. public int getmaxvalue() public blean isinteractive() // pbiera maksymalną wartść biektu Gauge // sprawdza inreaktywnść biektu Gauge public vid setpreferredsize(int width, int height) // ustawia nwe rzmiary biektu Gauge. parametry width / height ustalają nwą szerkść/wyskść biektu Gauge jeśli parametr width /height ma ujemną wartść równą -1 rzmiary biektu Gauge nie są zablkwane Interfejs niskieg pzimu Pełną kntrlę nad wyglądem ekranu, który chcemy wyświetlić, daje nam za t klasa Canvas. T za jej pmcą mżemy "malwać" pszczególne elementy na ekranie, twrząc je z takich atmów jak linie, elipsy, prstkąty czy wyświetlając brazy wczytane z pliku. Twrzne w ten spsób GUI nazywać będziemy interfejsem niskieg pzimu, gdyż definiwać tu mżna wygląd ekranu na najniższym mżliwym pzimie. Niestety, te dwa spsby nie ptrafią ze sbą współgrać. Nie mżemy więc wyświetlić elementu TextBx wewnątrz namalwaneg "na niskim pzimie" brazu. Materiały d użytku wewnętrzneg. Opracwał Zbigniew JANIK 5

Metdy graficzne klasy Canvas Wszystkie peracje ryswania wyknywane są w metdzie paint(): prtected vid paint(graphics g); W tej metdzie, krzystając z biektu g, mżna wyknywać peracje graficzne. Niektóre z nich pisane są pniżej. drawline(int x1, int y1, int x2, int y2 ) rysuje linię prstą d punktu współrzędnych (x1, y1) d punkt współrzędnych (x2, y2) drawrect (int x, int y, int w, int h ) rysuje prstkąt: x, y - współrzędne leweg górneg rgu prstkąta; w, h - szerkść i wyskść fillrect (int x, int y, int w, int h ) rysuje prstkąt wypełniny bieżącym klrem drawarc(int x, int y, int w, int h, int alfa, int beta) rysuje łuk pkrywający kreślny prstkąt alfa kąt kreślający pczątek łuku, beta rzmiar kąta fillarc(int x, int y, int w, int h, int alfa, int beta) wypełnia łuk pkrywający kreślny prstkąt. alfa kąt kreślający pczątek łuku, beta rzmiar kąta drawstring(string tekst, int x, int y, int punktzaczepienia) wyświetla tekst w punkcie współrzędnych (x, y). Punkt znajduje się w miejscu kreślnym przez parametr punktzaczepienia. filltriangle(int x1, int y1, int x2, int y2, int x3, int y3) wypełnia trójkąt, któreg wierzchłki znajdują się w punktach (x1, y1), (x2,y2), (x3,y3). Aby w dwlnym miejscu w prgramie spwdwać dmalwanie płótna, nie należy wywływać metdy paint() bezpśredni, tylk metdę repaint(). Rzmieszczanie tekstu w MIDletach W deklaracjach metd klasy Graphics częst pjawia się parametr nazwie punktzaczepienia (ang. anchr). Określa n, w którym miejscu (w dniesieniu d bszaru tekstu lub brazka) znajduje się punkt pdany w parametrach. Wynika t z teg, iż punkt pdawany w wywłaniu metd jak para liczb (x,y) nie musi stanwić leweg górneg wierzchłka biektu D kreślenia punktów zaczepienia wykrzystuje się stałe zawarte w klasie Graphics. Najczęściej stsuje się alternatywę bitwą dwóch stałych, aby w jednej liczbie przekazać infrmację zarówn pzimej, jak pinwej lkalizacji punktu zaczepienia. Kmbinacje różnych stałych przedstawin pniżej. TOP LEFT TOP HCENTER TOP RIGHT BASELINE LEFT BASELINE HCENTER BASELINE RIGHT BOTTOM LEFT BOTTOM HCENTER BOTTOM RIGHT Tabela nr 1. Spsób rzmieszczenia punktów zaczepienia w przypadku tekstów Z pwyższej tabeli wynika, że przy użyciu kmbinacji stałych Graphics.BASELINE Graphics.HCENTER punkt pdany w parametrach metdy będzie znajdwał się w śrdku. Określanie klru w metdzie setclr( ) Aby uzyskać dpwiedni klr, należy kreślić 3 parametry R, G, B w metdzie setclr(). Należy uruchmić prgram Paint i z menu Klry Definiuj klry niestandardwe wybrać trzy wartści liczbwe: g.setclr(r, G, B); g.setclr(131, 146, 216); Materiały d użytku wewnętrzneg. Opracwał Zbigniew JANIK 6

Klasa Timer i klasa TimerTask Klasy Timer i TimerTask znajdują się w pakiecie java.util. Służą między innymi d twrzenia brazu animwaneg. Pdbnie jak w przypadku klasy Canvas, także i w przypadku klasy TimerTask należy zdefiniwać klasę wewnętrzną będącą jej pchdną. Na przykład: class Zmiana extends TimerTask { public vid run() { //peracje d wyknania w ddzielnym wątku } }. Taką klasę najlepiej jest zadeklarwać jak klasę wewnętrzną głównej klasy MIDletu. Dzięki temu mamy łatwy dstęp d wszystkich pól i metd. Instrukcje wyknywane w metdzie run() są wyknywane w sbnym wątku prgramu. Aby zaprgramwać cykliczne wyknanie metdy run() knkretneg biektu klasy TimerTask, należy pwiązać g z biektem klasy Timer za pmcą metdy schedule(). Wtedy c kreślny czas zdefiniwany w metdzie schedule() biekt klasy Timer będzie generwał zdarzenia bsługiwane właśnie przez metdę run(). Typwa knstrukcja wygląda następując: Timer zegar = new Timer(); Zmiana zdarzenie = new Zmiana (); zegar.schedule (zdarzenie, 0, 1000); Drugi parametr metdy schedule kreśla, p ilu milisekundach zegar ma zstać uruchminy. Natmiast trzeci parametr definiuje interwał czaswy pmiędzy klejnymi wywłaniami. Uwaga! Gdy wystąpi jakiś nieprzechwycny wyjątek w prgramie, a użyty jest biekt klasy Timer, mże nastąpić jeg wyłączenie. Dlateg należy przechwytywać spdziewane błędy za pmcą knstrukcji try... catch. Przerwanie zdarzeń generwanych przez zegar mżna zrealizwać przy pmcy metdy zegar.cancel(); Aby wtedy wznwić działanie zegara, musisz pnwnie utwrzyć biekt zegara Timer raz zaplanwać jeg zdarzenia za pmcą metdy schedule(). Materiały d użytku wewnętrzneg. Opracwał Zbigniew JANIK 7