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.