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



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

STWORZENIE PRZYKŁADOWEJ

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

Java Platform Micro Edition

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

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

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

Programowanie aplikacji na urządzenia mobilne

Java programowanie telefonów komórkowych Na podstawie:

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

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

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

ZAPOZNANIE SIĘ Z TWORZENIEM

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Programowanie w języku Java

SEMINARIUM DYPLOMOWE

Podstawy i języki programowania

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

Wprowadzenie do J2ME

Programowanie obiektowe

Programowanie urządzeń mobilnych na platformie Java ME

KLASY, INTERFEJSY, ITP

Bezpieczne uruchamianie apletów wg

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

Aplikacje w środowisku Java

Programowanie obiektowe

Prerekwizyty. Aby pisać midlety należy zainstalować: JDK 1.2 lub nowszy, CLDC: cldc/download.

PWŚG Ćwiczenia 13. Ukończoną pracę należy przesłać na adres lub

Unity 3D - własny ekran startowy i menu gry

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

Aplikacje w środowisku Java

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

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

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

Programowanie Obiektowe GUI

Zaawansowane aplikacje WWW - laboratorium

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Programowanie obiektowe

INSTRUKCJA DO ĆWICZENIA 1 PIERWSZA APLIKACJA W JAVIE NA TELEFON KOMÓRKOWY INTERFEJS WYSOKIEGO POZIOMU KLASY SCREEN

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

Przychodnia 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę Osoba.

WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy

Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout

Programowanie na komórki

Podstawy Języka Java

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

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Klasy abstrakcyjne i interfejsy

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

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Aplikacje RMI Lab4

Instrukcja laboratoryjna cz.3

Polimorfizm. dr Jarosław Skaruz

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Programowanie obiektowe

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.


Ćwiczenia 9 - Swing - część 1

Podstawy obiektowości

Multimedia JAVA. Historia

Ćwiczenie 25 Działania matematyczne we Flashu

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Rozdział 4 KLASY, OBIEKTY, METODY

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Programowanie w Javie 1 Wykład i Ćwiczenia 2 Przegląd podstawowych klas w Javie (elementy programowania obiektowego) Płock, 16 października 2013 r.

Grafika i komunikacja człowiek komputer Laboratorium. Część 2: Graphics

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

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Podstawowe elementy GUI cz. 2 i 3 - zadania

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

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

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Aplikacje w środowisku Java

Enkapsulacja, dziedziczenie, polimorfizm

grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie

Wprowadzenie do projektu QualitySpy

Wprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.

Aplikacje internetowe i rozproszone - laboratorium

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

Klasy i obiekty cz II

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

Informatyka II. Laboratorium.

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

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

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

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

Mechanizm dziedziczenia

STWORZENIE MOBILNEJ APLIKACJI,

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Ćwiczenie 1. Przygotowanie środowiska JAVA

Technologie i usługi internetowe cz. 2

Transkrypt:

z wykorzystaniem języka Java ME ćwiczenia 2 Wykorzystanie plików graficznych w MIDlet ach utworzenie obiektu klasy Image (statyczna metoda createimage()) utworzenie obiektu klasy ImageItem dodanie utworzonego obiektu do formularza (lub innego obiektu) Jedna z wersji metody createimage() tworzy obiekt z pliku graficznego (obsługiwany format graficzny to PNG). Podajemy ścieżkę do pliku znajdującego się w katalogu res (ang. resources - zasoby). Przykładowa aplikacja wykorzystywany plik: taurus.png znajdujący się w katalogu res import javax.microedition.lcdui.*; import javax.microedition.midlet.midlet; import java.io.*; /** * MIDlet: Wyświetlanie grafiki * Klasy główne: Form (dziedzicząca z klasy Screen) * Klasy dodatkowe: Image oraz ImageItem (dziedzicząca z klasy Item) */ public class WyswietlanieGrafiki extends MIDlet implements CommandListener { // wykorzystanie klasy Form (formularz) private Form frm; // wykorzystanie klasy Command (obsługa poleceń) private Command exitcommand; // wykorzystanie klasy Display private Display dp; // dodatkowe pola związane z formularzem private ImageItem img; private Image image; // konstruktor tworzacy główny ekran public WyswietlanieGrafiki () { frm = new Form("Wyświetlanie grafiki"); try { // Tworzymy "Obraz" / oznacza ścieżkę do katalogu res image = Image.createImage("/taurus.png"); catch (IOException e) { System.out.println ("Nie można załadować obrazka!"); // tworzymy obiekt klasy ImageItem, ktry mozemy dodać do formularza 1

img = new ImageItem(null, image, ImageItem.LAYOUT_CENTER, "Obrazek przedstawiający byka"); frm.append(img); // tworzymy nowe polecenie exitcommand = new Command("Zakończ", Command.EXIT, 0); // dodajemy polecenia do formularza frm.addcommand(exitcommand); // wskazujemy obiekt obslugujacy zdarzenia frm.setcommandlistener(this); public void startapp() { // ustawiamy ekran poczatkowy dp = Display.getDisplay(this); dp.setcurrent(frm); public void pauseapp() { public void destroyapp(boolean u) { // ciało metody z interfejsu CommandListener public void commandaction(command c, Displayable d) { // obsluga polecenia exitcommand (kończymy działanie aplikacji) if (c == exitcommand) { destroyapp(true); notifydestroyed(); 2

Obsługa menu Aplikacje posiadające wiele opcji powinny mieć możliwość umieszczenia ich w menu. W MIDlet ach opcje tworzone są za pomocą nowych obiektów klasy Command. Ich umieszczenie uzależnione jest od typu, priorytetu oraz możliwości urządzenia. Przykładowa aplikacja import javax.microedition.lcdui.*; import javax.microedition.midlet.midlet; /** * MIDlet: TworzenieMenu * Klasy główne: TextBox (dziedzicząca z klasy Screen) */ public class TworzenieMenu extends MIDlet implements CommandListener { // wykorzystanie klasy TextBox private TextBox tb; // wykorzystanie klasy Command (obsługa poleceń) private Command exitcommand, pisowniacommand, wyslijsmscommand, wyslijmmscommnad, wyslijbtcommnad, wyczysccommand, zapiszcommand ; // wykorzystanie klasy Display private Display dp; public TworzenieMenu () { // tworzymy obiekt klasy TextBox tb = new TextBox("Wprowadzanie tekstu", "", 320, TextField.ANY); // tworzymy nowe polecenia exitcommand = new Command("Zakończ", Command.EXIT, 0); pisowniacommand = new Command("Sprawdź pisownię", Command.SCREEN, 1); wyslijsmscommand = new Command("Wyślij SMS'em", Command.SCREEN, 1); wyslijmmscommnad = new Command("Wyślij MMS'em", Command.SCREEN, 1); wyslijbtcommnad = new Command("Wyślij przez BT", Command.SCREEN, 1); wyczysccommand = new Command("Wyczyść", Command.SCREEN, 1); zapiszcommand = new Command("Zapisz", Command.SCREEN, 1); // dodajemy polecenia do pola tekstowego tb.addcommand(exitcommand); tb.addcommand(pisowniacommand); tb.addcommand(wyslijsmscommand); tb.addcommand(wyslijmmscommnad); tb.addcommand(wyslijbtcommnad); tb.addcommand(wyczysccommand); tb.addcommand(zapiszcommand); // wskazujemy obiekt obslugujacy zdarzenia tb.setcommandlistener(this); 3

public void startapp() { // ustawiamy ekran poczatkowy dp = Display.getDisplay(this); dp.setcurrent(tb); public void pauseapp() { public void destroyapp(boolean u) { // ciało metody z interfejsu CommandListener public void commandaction(command c, Displayable d) { // obsluga polecenia exitcommand (kończymy działanie aplikacji) if (c == exitcommand) { destroyapp(true); notifydestroyed(); // obsluga pozostałych poleceń //... Wykorzystanie GUI niskiego poziomu klasa Canvas Klasa Canvas jest klasą reprezentującą ekran urządzenia mobilnego. Wykorzystanie bezpośredniego dostępu do ekranu polega na utworzeniu klasy dziedziczącej z klasy Canvas. Przesłonięcie odpowiednich metod pozwala na obsługę większości zdarzeń związanych z ekranem. Metodą, którą zawsze musimy przesłonić jest metoda paint() (wywoływana gdy urządzenie potrzebuje zaktualizować dane na ekranie). Parametrem metody jest referencja do obiektu klasy Graphics reprezentującego ekran urządzenia. Większość metod związanych z obsługą ekranu dostępna jest w klasie Graphics (rysowanie figur, zmiana koloru, wyświetlanie tekstu itp.). Parametry fizyczne ekranu urządzenia mobilnego uzyskamy za pomocą metod klasy Canvas (np. getwidth(), getheight()) oraz metod klasy Display (np. iscolor()). Przykładowa aplikacja import javax.microedition.midlet.midlet; import javax.microedition.lcdui.*; // klasa dziedzicząca z klasy Canvas (musimy przesłonić przynajmniej metodę paint()) class Ekran extends Canvas { public void paint(graphics g) { // pobieramy rozmiary ekranu int szer = getwidth(); int wys = getheight(); // czyścimy ekran na biało g.setcolor(0x00ffffff); g.fillrect(0, 0, szer - 1, wys - 1); 4

// rysujemy czerwony prostokąt g.setcolor(0x00ff0000); g.drawrect(szer / 10, wys / 10, szer / 5, wys / 5); // rysujemy zieloną linię g.setcolor(0x0000ff00); g.drawline(10, 10, 70, 70); // piszemy niebieski tekst g.setcolor(0x000000ff); g.drawstring("piszemy po ekranie...", 10, 90, Graphics.TOP Graphics.LEFT); public class ObslugaEkranu extends MIDlet implements CommandListener { // pola klasy (jedno z pól jest referencją do obiektu klasy Ekran) private Ekran ekr; private Command exitcommand; private Display dp; // konstruktor public ObslugaEkranu () { ekr = new Ekran(); exitcommand = new Command("Zakończ", Command.EXIT, 0); ekr.addcommand(exitcommand); ekr.setcommandlistener(this); public void startapp() { dp = Display.getDisplay(this); dp.setcurrent(ekr); public void pauseapp() { public void destroyapp(boolean unconditional) { public void commandaction(command c, Displayable d) { // obsluga polecenia exitcommand (kończymy działanie aplikacji) if (c == exitcommand) { destroyapp(true); notifydestroyed(); 5

Zadania 1. Napisz MIDlet wyświetlający ekran powitalny będący jego nazwą/logiem (plik graficzny). Ekran ten powinien po chwili zniknąć. Wykorzystaj poznane klasy (np. klasę Alert lub Form) oraz dowolny plik graficzny w formacie PNG. Sam MIDlet może być, którymś z poznanych na poprzednich ćwiczeniach (formularze, wyświetlanie tekstu itd.) 2. Korzystając z przykładowego kodu MIDlet u z wieloma opcjami zmień ich kolejność w menu (priorytet polecenia), a następnie utwórz aplikację pobierającą od użytkownika dwie liczby i wykonującą określoną operację na nich (dodawanie, odejmowanie, dzielenie, mnożenie itp.). Wykorzystaj rozbudowane menu. 3. Zaprojektuj MIDlet wyświetlający na ekranie tabliczkę mnożenia 10x10. Wykorzystaj klasę Canvas oraz parametry urządzenia mobilnego do prawidłowego rozmieszczenia wszystkich elementów. 6