STWORZENIE PRZYKŁADOWEJ



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

Java Platform Micro Edition

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

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

ZAPOZNANIE SIĘ Z TWORZENIEM

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

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

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

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

Java programowanie telefonów komórkowych Na podstawie:

Programowanie aplikacji na urządzenia mobilne

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

Programowanie w języku Java

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

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

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

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

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

Programowanie obiektowe

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

Wyjątki (exceptions)

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

Wprowadzenie do J2ME

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Systemy Rozproszone - Ćwiczenie 6

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

STWORZENIE MOBILNEJ APLIKACJI,

Obliczenie azymutu ze współrzędnych wersja C++ Builder

Programowanie w JAVA Lab. 5 - Wątki. 1. Wykorzystując metodę Monte Carlo narysować wykres funkcji oraz obliczyć całkę: 7 x ) xy, 8,8

SEMINARIUM DYPLOMOWE

Programowanie obiektowe

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

PROJEKTOWANIE ABSTRAKCYJNEJ KLASY FIGURA PRZECHOWUJĄCEJ WSPÓLNE CECHY OBIEKTÓW GRAFICZNYCH

JAVA Materiały do laboratorium III wersja niezaawansowana Marcin Borkowski WSEiZ czerwiec 2006

Aplikacje w środowisku Java

Przypomnienie o klasach i obiektach

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Bezpieczne uruchamianie apletów wg

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

PARADYGMATY PROGRAMOWANIA Wykład 4

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

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

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

Kontenery i komponenty graficzne

Aplikacje WWW - laboratorium

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

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

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

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

Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit)

dr inż. Jarosław Forenc

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

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

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

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

4. W konstruktorze klasy Grafika wywołaj metodę określającą rozmiary ramki oraz ustaw kolor tła metodą setbackground():

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

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

Programowanie Obiektowe Ćwiczenie 4

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Projektowanie algorytmów rekurencyjnych

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

Zaawansowane programowanie w języku C++ Programowanie obiektowe

JAVA W SUPER EXPRESOWEJ PIGUŁCE

II Tworzenie klasy Prostokąt dziedziczącej z klasy wątku

Wywoływanie metod zdalnych

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

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

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

Katalog książek cz. 2

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

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

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

Laboratorium 1 - Programowanie proceduralne i obiektowe

Remote Method Invocation 17 listopada 2010

Zaawansowane aplikacje WWW - laboratorium

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Programowanie urządzeń mobilnych na platformie Java ME

Klasy abstrakcyjne i interfejsy

Podejście obiektowe do budowy systemów rozproszonych

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project

Multimedia JAVA. Historia

Programowanie obiektowe

Tworzenie i obsługa graficznego interfejsu uŝytkownika

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

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

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

Podstawy programowania w lejos

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

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Podstawy i języki programowania

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

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

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

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

JAX-RS czyli REST w Javie. Adam Kędziora

Transkrypt:

LABORATORIUM SYSTEMÓW MOBILNYCH STWORZENIE PRZYKŁADOWEJ APLIKACJI MOBILNEJ W J2ME I. Temat ćwiczenia II. Wymagania Wykonanie poprzedniego ćwiczenia III. Ćwiczenie 1. Stworzenie aplikacji Celem ćwiczenia jest przygotowanie mobilnej aplikacji w języku Java (J2ME) dla telefonu komórkowego realizującej wizualizację równania kwadratowego o podanych przez uŝytkownika parametrach. Utworzenie aplikacji rozpocząć moŝemy od przygotowania głównej formy programu. Na początku definiujemy obszar wyświetlacza oraz formularz na którym umieścimy komponenty komunikacji z uŝytkownikiem (Listing 1). private Display display; private Form form; Listing 1 Definicja obszaru wyświetlacza oraz formularza Definiujemy komponenty formularza, słuŝące do wprowadzenia parametrów równania kwadratowego TextField (Listing 2). private TextField tf1 = new TextField("A:", "", 6, TextField.ANY); private TextField tf2 = new TextField("B:", "", 6, TextField.ANY); private TextField tf3 = new TextField("C:", "", 6, TextField.ANY); Listing 2 Definicja komponentów komunikacji z uŝytkownikiem W konstruktorze tworzymy obiekt formularza oraz dodajemy do niego zdefiniowane uprzednio komponenty (Listing 3). Strona 1/5

display = Display.getDisplay(this); form = new Form("Rownanie kwadratowe"); form.append(new String("Wprowadz parametry rownania kwadratowego:\n f(x) = Ax^2 + Bx + C")); form.append(tf1); form.append(tf2); form.append(tf3); Listing 3 Utworzenie obiektów oraz dodanie komponentów do formularza W następnym kroku definiujemy obiekty odpowiedzialne za nawigację w aplikacji, która odbywa się poprzez posługiwanie się przez uŝytkownika klawiszami sterującymi telefonu (Listing 4). private Command exitcommand = new Command("Wyjście", Command.SCREEN, 2); private Command calculatecommand = new Command("Oblicz", Command.SCREEN, 1); Listing 4 Utworzenie obiektów obsługi klawiszy telefonu Umieszczamy utworzone obiekty na formularzu (Listing 5). form.addcommand(exitcommand); form.addcommand(calculatecommand); Listing 5 Dodanie obiektów obsługi klawiszy telefonu do formularza W kolejnym etapie definiujemy metodę obsługi naciśnięcia klawiszy (Listing 6). if (c == exitcommand) { destroyapp(false); notifydestroyed(); if (c == calculatecommand) { float A,B,C; try { A = Float.parseFloat(tf1.getString().equals("")?"0":tf1.getString()); B = Float.parseFloat(tf2.getString().equals("")?"0":tf2.getString()); C = Float.parseFloat(tf3.getString().equals("")?"0":tf3.getString()); catch (Exception e) { A=B=C=0; display.setcurrent(new Wykres(form, display, (int)a, (int)b, (int)c)); Listing 6 Przykładowa metoda obsługi naciśnięcia klawiszy Strona 2/5

Kompletny, przykładowy kod obsługi głównej formy aplikacji (Listing 7). 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.lcdui.textfield; import javax.microedition.midlet.midlet; public class MojPierwszyMidlet extends MIDlet implements CommandListener { private Command exitcommand = new Command("Wyjście", Command.SCREEN, 2); private Command calculatecommand = new Command("Oblicz", Command.SCREEN, 1); private Display display; private Form form; private TextField tf1 = new TextField("A:", "", 6, TextField.ANY); private TextField tf2 = new TextField("B:", "", 6, TextField.ANY); private TextField tf3 = new TextField("C:", "", 6, TextField.ANY); public MojPierwszyMidlet() { display = Display.getDisplay(this); form = new Form("Rownanie kwadratowe"); form.append(new String("Wprowadz parametry rownania kwadratowego:\n f(x) = Ax^2 + Bx + C")); form.append(tf1); form.append(tf2); form.append(tf3); form.addcommand(exitcommand); form.addcommand(calculatecommand); form.setcommandlistener(this); public void startapp() { display.setcurrent(form); public void pauseapp() { public void destroyapp(boolean unconditional) { if (c == exitcommand) { destroyapp(false); notifydestroyed(); if (c == calculatecommand) { float A, B, C; try { A = Float.parseFloat(tf1.getString().equals("")? "0" : tf1.getstring()); B = Float.parseFloat(tf2.getString().equals("")? "0" : tf2.getstring()); C = Float.parseFloat(tf3.getString().equals("")? "0" : tf3.getstring()); catch (Exception e) { A = B = C = 0; display.setcurrent(new Wykres(form, display, (int)a, (int)b, (int)c)); Listing 7 Przykładowy kod obsługi głównej formy aplikacji Strona 3/5

W kolejnym kroku moŝemy przystąpić do utworzenia formy wyświetlającej wykres funkcji kwadratowej. Przykładowy kod wizualizacji wykresu funkcji (Listing 8). import javax.microedition.lcdui.canvas; 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.lcdui.graphics; public class Wykres extends Canvas implements CommandListener { Form form; Display display; private Command backcommand = new Command("Wstecz", Command.SCREEN, 2); // szerokość i długość ekranu int ScreenWidth, ScreenHeight; int A, B, C; public Wykres(Form f, Display d, int a, int b, int c) { display = d; form = f; A = a; B = b; C = c; ScreenWidth = getwidth(); ScreenHeight = getheight(); addcommand(backcommand); setcommandlistener(this); protected void paint(graphics g) { // zmiana aktualnego koloru g.setcolor(0xffffff); // namalowanie wypełnionego aktualnym kolorem prostokąta g.fillrect(0, 0, ScreenWidth, ScreenHeight); // zmiana aktualnego koloru g.setcolor(0x0); g.drawline(0, ScreenHeight / 2, ScreenWidth, ScreenHeight / 2); g.drawline(screenwidth / 2, 0, ScreenWidth / 2, ScreenHeight); g.setcolor(0xff0000); int prevy = calcy(0 - ScreenWidth / 2); int newy; for (int k = 1; k < ScreenWidth; k++) { newy = calcy(0 - ScreenWidth / 2 + k); g.drawline(k - 1, prevy + ScreenHeight/2, k, newy + ScreenHeight/2); prevy = newy; private int calcy(int x) { return -(A * x * x + B * x + C); if (c == backcommand) { display.setcurrent(form); Listing 8 Przykładowy kod wizualizacji wykresu funkcji kwadratowej Strona 4/5

3. Zadanie Napisać aplikację rysującą wybrane przez uŝytkownika figury geometryczne. Aplikacja ma umoŝliwiać uŝytkownikowi: wybór figury geometrycznej do narysowania (kwadrat, trójkąt, koło, romb, trapez), wybór liczby figur do narysowania, zdefiniowanie koloru tła, obramowania i wypełnienia figur. Aplikację naleŝy wzbogacić o mechanizm powiększania oraz zmniejszania wyświetlanej figury posługując się klawiszami funkcyjnymi telefonu. Strona 5/5