Java Platform Micro Edition Instalacja środowiska
Transkrypt
Java Platform Micro Edition Instalacja środowiska
Java Platform Micro Edition Instalacja środowiska programistycznego Java Platform Micro Edition Software Development Kit 3.0 for Windows z lokalizacji http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp-139759.html pobierz i zainstaluj pakiet Uruchamianie projektów Dokonaj przeglądu przykładowych aplikacji dostarczonych razem ze środowiskiem, zwróć uwagę na różne typy aplikacji oraz urządzeń służących do uruchamiania przygotowanych projektów: (uruchamianie projektu Run -> Run Main Project lub klawisz F6) Tworzenie aplikacji typu MIDlet File->New project... -> Java ME SDK -> MIDP Application W następnym kroku podajemy nazwę projektu i wybieramy typ urządzenia: Kreator utworzy projekt z przykładową aplikacją, którą można uruchomić wybierając z menu Run -> Run Main Project lub używając klawisza F6. Wybór urządzenia Utworzoną aplikację typu MIDlet można uruchomić jednym z kilku dostępnych urządzeń w następujący sposób: Budowa aplikacji typu MIDlet package hello; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloMIDlet extends MIDlet implements CommandListener { private Command exitCommand; // The exit command private Display display; // The display for this MIDlet public HelloMIDlet() { display = Display.getDisplay(this); exitCommand = new Command("Exit", Command.EXIT, 0); } public void startApp() { TextBox t = new TextBox("Hello", "Hello, World!", 256, 0); t.addCommand(exitCommand); t.setCommandListener(this); display.setCurrent(t); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } } } Tworzenie własnego MIDletu (Okno z nagłówkiem) Tworzymy nowy projekt, podobnie jak poprzednio, z tym że odznaczamy pole Create Hello MIDlet Dodajemy do projektu MIDlet: Wpisujemy nazwę: Uzupełniamy kod utworzony przez kreator do następującej postaci: import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class Midlet2 extends MIDlet { public Midlet2() { Form okno = new Form("To jest nasz własny MIDlet"); Display ekran = Display.getDisplay(this); ekran.setCurrent(okno); } public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Uruchamiamy projekt. Tworzenie własnego MIDletu (Okno z nagłówkiem i napisem wewnątrz okna) Tworzymy nowy projekt i uzupełniamy kod MIDletu do następującej postaci: import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class Midlet3 extends MIDlet { private Form okno; public Midlet3() { okno = new Form("To jest nasz własny MIDlet"); String tekst = "Witaj"; okno.append(tekst); } public void startApp() { Display ekran = Display.getDisplay(this); ekran.setCurrent(okno); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Uruchamiamy. Instalacja aplikacji w urządzeniu za pomocą interfejsu OTA (Over The Net) Wybieramy z menu Run-> Run Main Project via OTA następnie w urządzeniu postępujemy zgodnie z wyświetlanymi instrukcjami. Przetestować uruchamianie napisanych aplikacji w różnych emulatorach. Tworzenie aplikacji typu CDC (Advanced Graphics and User Interface Connected Device Configuration) Z menu File wybieramy New Project... w kolejnym kroku... Uruchomić przykład (F6). Wybór urządzenia Podobnie jak dla aplikacji typu MIDlet, programy CDC można uruchomić jednym z kilku dostępnych urządzeń. Sprawdź na których urządzeniach da się uruchomić ostatnia aplikacja. Utwórz przykładową aplikację typu VGAGUIPhone Okno z nagłówkiem i napisem wewnątrz okna wybieranym losowo import javax.microedition.midlet.MIDlet; import javax.microedition.lcdui.*; import java.util.*; public class MIDlet4 extends MIDlet implements CommandListener { private Form okno; private Command cmdKoniec; private static final String[] POWITANIE = { "Dzień dobry", "Good morning", "Guten morgen", "Bonjour", "Buenos dias" }; public MIDlet4() { okno = new Form("To jest nasz MIDlet"); cmdKoniec = new Command("Koniec", Command.EXIT, 0); Random r = new Random(System.currentTimeMillis()); int liczba = Math.abs(r.nextInt() % 5); String tekst = POWITANIE[liczba]; okno.append(tekst); } public void startApp() { Display ekran = Display.getDisplay(this); ekran.setCurrent(okno); okno.addCommand(cmdKoniec); okno.setCommandListener(this); } public void pauseApp() { } public void destroyApp(boolean u) { } } public void commandAction(Command cmd, Displayable s) { if (cmd == cmdKoniec) // zamkniecie aplikacji { //destroyApp(false); notifyDestroyed(); } } Obsługa poleceń import javax.microedition.midlet.MIDlet; import javax.microedition.lcdui.*; public class MIDlet5 extends MIDlet implements CommandListener { private TextBox tb; private Command cmdKoniec; public MIDlet5() { tb = new TextBox("Programowanie Java ME", "Tekst do edycji", 50, 0); // tytuł, text, maxsize znaków, ograniczenia cmdKoniec = new Command("Koniec", Command.EXIT, 0); } public void startApp() { Display ekran = Display.getDisplay(this); ekran.setCurrent(tb); tb.addCommand(cmdKoniec); tb.setCommandListener(this); } public void pauseApp() { } public void destroyApp(boolean u) { } } public void commandAction(Command cmd, Displayable s) { if (cmd == cmdKoniec) // zamkniecie aplikacji { //destroyApp(false); notifyDestroyed(); } } Przeliczanie temperatury ze skali Celsjusza na Fahrenheita import javax.microedition.midlet.MIDlet; import javax.microedition.lcdui.*; public class MIDlet6 extends MIDlet implements CommandListener { private Form okno; private TextField tf1, tf2; private Ticker komunikat; private Command cmdPrzelicz; private Command cmdKoniec; public MIDlet6() { okno = new Form("Przeliczanie temperatury"); tf1 = new TextField(" Celsjusz:", "0", 5, TextField.DECIMAL); tf2 = new TextField("Fahrenheit:", null, 5, TextField.DECIMAL); komunikat = new Ticker("Celsjusz => Fahrenheit"); cmdPrzelicz = new Command("Przelicz", Command.ITEM, 0); cmdKoniec = new Command("Koniec", Command.ITEM, 1); okno.append(tf1); okno.append(tf2); okno.setTicker(komunikat); } public void startApp() { Display ekran = Display.getDisplay(this); ekran.setCurrent(okno); okno.addCommand(cmdPrzelicz); okno.addCommand(cmdKoniec); okno.setCommandListener(this); } public void pauseApp() { } public void destroyApp(boolean u) { } public void commandAction(Command cmd, Displayable s) { if (cmd == cmdPrzelicz) // przeliczenie temperatury { try { double x = Double.parseDouble(tf1.getString()); double y = 9.0/5.0*x+32.0; Double wynik = new Double(y); tf2.setString(wynik.toString()); komunikat.setString("Przeliczanie Celsjusz => Fahrenheit"); } catch (NumberFormatException e) //catch (IOException e) { komunikat.setString("Błąd w podanej wartości"); e.printStackTrace(); } } if (cmd == cmdKoniec) // zamkniecie aplikacji { //destroyApp(false); notifyDestroyed(); } } } ZADANIA 1. Utworzyć MIDlet wczytujący współczynniki równania kwadratowego ax^2 + bx + c = 0 i rozwiązujący równanie. 2. Utworzyć MIDlet wypełniający tablicę jednowymiarową losowymi wartościami i wyznaczający: wartość najmniejszą, wartość największą, sumę, średnią arytmetyczną. 3. Utworzyć MIDlet-zgadywankę: losowana jest liczba naturalna z pewnego zakresu, który jest znany użytkownikowi. Zadaniem użytkownika jest odgadnięcie tej liczby. Po podaniu liczby przez użytkownika MIDlet udziela odpowiedzi: "za mała", "za duża" lub "trafiłeś za n-tym razem". Zastosować przeszukiwanie binarne.