Your SlideShare is downloading. ×
0
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
03 Tworzenie GUI wysokiego poziomu w j2me
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

03 Tworzenie GUI wysokiego poziomu w j2me

323

Published on

Prezentacja wprowadzająca do podstaw programowania urządzeń mobilnych w j2me. Przygotowana i wygłoszona przez Marcina Majaka 12.11.2009. …

Prezentacja wprowadzająca do podstaw programowania urządzeń mobilnych w j2me. Przygotowana i wygłoszona przez Marcina Majaka 12.11.2009.

Prezentacja wygłoszona w ramach Warsztatów programowania telefonów komórkowych w j2me przy Studenckim Kole Naukowym Informatyki Systemów Autonomicznych i Adaptacyjnych ISA^2.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
323
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009 Tworzenie GUI wysokiego poziomu Marcin Majak 164000@student.pwr.wroc.pl Politechnika Wrocławska Wydział Elektroniki Studenckie Koło Naukowe Informatyki Systemów Autonomicznych i Adaptacyjnych ISA2 12 listopada 2009Marcin Majak Wyskopoziomowe GUI 1/46
  • 2. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 2/46
  • 3. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 3/46
  • 4. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Przypomnienie Przypomnijmy jeszcze raz Wyświetlić na ekranie możemy tylko obiekty klas wywiedzionych z klasy Displayable, która dostarcza funkcjonalności dostępnej później we wszystkich jego potomkach. public boolean isShown() public void addCommand(Command cmd) public void removeCommand(Command cmd) public void setCommandListener(CommandListener l) Display.setCurrent(Displayable nextDisplayable) - ustawienie co ma byc wyswietlane na ekranie Marcin Majak Wyskopoziomowe GUI 4/46
  • 5. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Diagram Dzisiejszego dnia najważniejsza jest dla nas będzie klasa Screen, która pozwala tworzyć GUI wysokiego poziomu, elementy te swój wygląd przystosowują do urządzenia, na którym aplikacja jest uruchamiana(maszyna Javy konkretnego urządzenia odgrywa kluczową rolę). Marcin Majak Wyskopoziomowe GUI 5/46
  • 6. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Bliżej o klasie Screen API klasy Screen wygląda następująco: public Ticker Ticker(); public String getTitle(); public void setTicker(Ticker ticker); public void setTitle(String title); W profilu MIDP 2.0, wszystkie metody przeszły z klasy Screen do klasy Displayable, jest to zgodnie z zasadą źgodności wstecz”, aplikacje napisane pod MIDP 1.0 będą działać na urządzeniu o profilu MIDP 2.0. Marcin Majak Wyskopoziomowe GUI 6/46
  • 7. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 7/46
  • 8. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009FORM http://www.midlety.net/site/praktyka/HighLevelGUI1.html Powyższy diagram pokazuje, że wszystkie elementy dziedziczą z klasy abstrakcyjnej Item. Głównym źródłem tworzenia formularzy będzie klasa Form pochodząca z klasy Screen. Poszczególne elementy dokładane do Form wywiedzione są z klasy Item pakietu javax.microedition.lcdui. Marcin Majak Wyskopoziomowe GUI 8/46
  • 9. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Z czego możemy skorzystać I Możemy tworzyć formularze na dwa sposoby: Stworzyć pusty formularz z nagłówkiem i sekwencyjnie dodawać nowe elementy za pomocą funkcji append()1 public Form(String nazwaFormularza);2 public void append(Item element); Przygotować zestaw elementów składających się na nasz formularz i użyć konstruktora1 public Form(String nazwaFormularza, Item[] elementyDoFormularza); Marcin Majak Wyskopoziomowe GUI 9/46
  • 10. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Jeszcze trochę o formularzu I Inne przydatne metody obsługi formularza: 1 public void delete(int numerElementu); 2 public Item get(int numerElementu); 3 public void insert(int index, Item rodzajElementu); 4 public void set(int index, Item item); 5 public int size(); Pamiętaj W przeciwieństwie do elementów Command elementy Item mogą być dodane tylko do jednego Formularza!!! Marcin Majak Wyskopoziomowe GUI 10/46
  • 11. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Obsługa zdarzeń I Istnieją dwie metody obsługi zdarzeń Dodanie do formularza obiektu klasy Commad i nasłuchiwanie zdarzeń w zarejestrowanym CommandListener Aby modyfikować formularz w zależności od wprowadzonych danych należy zarejestrować ItemStateListener1 public void setItemStateListener(ItemStateListener iListener);2 // rejestracja listenera3 public void ItemStateChanged(Item item);4 // obsluga zdarzen Marcin Majak Wyskopoziomowe GUI 11/46
  • 12. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 12/46
  • 13. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009 StringItem I StringItem 1 StringItem(String nazwaElementu, String text); 2 public String getText(); // pobierz tekst 3 public void setText(String text); // ustaw tekst 1 m_Form = new Form(Formularz); 2 Image image; 3 try{ 4 image = Image.createImage(/Ikonka2.png); 5 }catch (java.io.IOException e){ 6 e.printStackTrace(); 7 image = null; 8 } 9 m_Form.append(new StringItem(null,10 Napis..., Item.PLAIN));11 m_Form.append(new Spacer(32, 32));12 m_Form.append(new ImageItem(null, image,13 ImageItem.LAYOUT_DEFAULT, null));14 m_Form.setCommandListener(this);15 m_Form.addCommand(new Command(OK, Command.OK, 0));16 Display display = Display.getDisplay(this);17 display.setCurrent(m_Form); Marcin Majak Wyskopoziomowe GUI 13/46
  • 14. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009TextField I TextField- konstruktor i metody 1 public TextField(String nazwaElementu, String tekstPoczatkowy, 2 int maxIloscZnakow, int ograniczenia); 3 public void setConstraints(int rodzajOgraniczenia); 4 public void delete(int poczatekTekstu, int dlugosc); 5 public int getChars(char[] tablicaChar); 6 public String getString(); 7 public void insert(char[] data, int poczatekTekstu, int dlugosc, 8 int gdzie); 9 public void insert(String tekst, int gdzie);10 public void setChars(char[] data, int poczatekTekstu, int dlugosc);11 public void setString(String text); Marcin Majak Wyskopoziomowe GUI 14/46
  • 15. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Wyjaśnienie oznaczeń I1 Form.append(new TextField(2 URL,3 http://www.google.pl/,4 256,5 TextField.URL)); Rodzaje ograniczeń “Constrains”: TextField.ANY każdy tekst TextField.EMAILADDR adres e-mail TextField.NUMERIC tylko liczby TextField.PASSWORD hasło TextField.PHONENUMBER możliwość wprowadzenia numeru TextField.URL adres internetowy Marcin Majak Wyskopoziomowe GUI 15/46
  • 16. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009ChoiceGroup I ChoiceGroup umożliwa wybór jednej lub kilki opcji 1 public ChoiceGroup(String nazwaElementu, int rodzaj); 2 public ChoiceGroup(String label, int rodzaj, 3 String[] nazwyWyborow, Image[] ikony); 4 int append(String nazwaWyboru, Image ikona); 5 public int size(); 6 public boolean isSelected(int index); 7 public int getSelectedIndex(); 8 public int getSelectedFlags(boolean[] flags); 9 public void insert(int index, String string, Image image);10 public void set(int index, String string, Image image);11 public void delete(int index); Marcin Majak Wyskopoziomowe GUI 16/46
  • 17. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Rodzaje ChoiceGroup Choice.EXLUSIVE możliwy tylko pojedynczy wybór Choice.MULTIPLE możesz wybrać kilka opcji Choice.POPUP po wciśnięciu rozwija się menu Marcin Majak Wyskopoziomowe GUI 17/46
  • 18. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009DateField I DateField występuje w 3 rodzajach DateField.DATE, DateField.TIME, DateField.DATE TIME.1 DateField(String nazwa, int rodzajDzialania,2 TimeZone strefa czasowa);3 DateField(String nazwa, int rodzajDzialania);4 public void setDate(Date data);5 public Date getDate();6 public void setInputMode(int rodzajDzialania);7 public int getInputMode(); Marcin Majak Wyskopoziomowe GUI 18/46
  • 19. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Gauge I Gauge suwak do wybierania wartości liczbowej1 Gauge(String nazwa, boolean czyMozliwaZmiana,2 int maxWartosc, int poczatkowaWartosc);3 public int getMaxValue();4 public int getValue();5 public void setValue(int wartosc);6 public vois setMaxValue(int wartosc); Marcin Majak Wyskopoziomowe GUI 19/46
  • 20. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Rodzaje odliczania w Gauge I Dla nieiteraktywnych Gauge rodzaj pola maxWartosc można ustawić: CONTINUOUS IDLE, CONTINUOUS RUNNING, INCREMENTAL IDLE, INCREMENTAL UPDATING1 m_Form.append(new Gauge(2 Głośność, // label3 true, // interactive4 9, // maxValue5 5)); // initialValue Marcin Majak Wyskopoziomowe GUI 20/46
  • 21. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009 TextBox I TextBox obiekt podobny do omówionego wcześniej TextField 1 public TextBox(String nazwa, String textPoczatkowy, 2 int maxLiczbaZnakow, int ograniczenia); 1 TextBox m_TextBox; 2 protected void startApp() throws MIDletStateChangeException{ 3 m_TextBox = new TextBox(Login, , 32, 0); 4 m_TextBox.setCommandListener(this); 5 m_TextBox.addCommand(new Command(OK, Command.OK, 0)); 6 Display display = Display.getDisplay(this); 7 display.setCurrent(m_TextBox); 8 9 public void commandAction(Command c, Displayable d){10 if (c.getCommandType() == Command.OK)11 GoFurther(m_TextBox.getString());12 } Marcin Majak Wyskopoziomowe GUI 21/46
  • 22. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 22/46
  • 23. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Alert I Alert służy do wyświetlania prostych komunikatów na ekranie urządzenia. 1 public void setCurrent(Displayable alertDoWysietlenia); 2 public void setCurrent(Alert alert, Displayable nastepnyEkran); 3 public Alert(String nazwa); 4 public Alert(String nazwa, String alertText,Image alertImage, 5 AlertType rodzajAlarmu); 6 public int getDefaultTimeout(); 7 public void setDefaultTimeout(int wartosc); Marcin Majak Wyskopoziomowe GUI 23/46
  • 24. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Rodzaje alertów Rodzaje alarmów: AlerType.ALARM AlerType.CONFIRMATION AlerType.ERROR AlerType.INFO AlerType.WARNING Marcin Majak Wyskopoziomowe GUI 24/46
  • 25. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 25/46
  • 26. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Przykłady list I Podobieństwo do ChoiceGroup Obiekt typu List jest bardzo podobny do omówionego wcześniej ChoiceGroup. List wywiedziony jest z klasy Screen, tak więc zajmuje cały ekran. Można do niego dołączać własne komendy, ale trzeba pamiętać, że nie można dołączyć do niego ItemStateListener (bo nie wywodzi sie z klasy Item). 1 public List(String nazwa, int rodzajListy); 2 public List(String nazwa, int rodzajListy, String[] opcje, Image[] images); Marcin Majak Wyskopoziomowe GUI 26/46
  • 27. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Rodzaje list Rodzaje list(podobne jak w ChoiceGroup): List.IMPLICIT wybór jednej opcji(zwykła lista) List.EXCLUSIVE wybór jedengo elementu(RadioButtons) List.MULTIPLE wybór kilku opcji Marcin Majak Wyskopoziomowe GUI 27/46
  • 28. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 28/46
  • 29. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Czcionki I Zmiana czcionki Aby zmienić czcionkę w naszej aplikacji należy skorzystać z obiektu typu FONT 1 Font font=Font.getFont(face,style.size); 2 m_List = new List(Lista, Choice.IMPLICIT); 3 m_List.append(Opcja 1, null); 4 m_List.append(Opcja 2, null); 5 m_List.append(Opcja 3, null); 6 m_List.setFont(0, fon 7 t); 8 m_List.setFont(1, font); 9 m_List.setFont(2, font); Marcin Majak Wyskopoziomowe GUI 29/46
  • 30. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Opcje zmiany czcionki Rodzaje face: Font.FACE SYSTEM Font.FACE MONOSPACE Font.FACE PROPORTIONAL Rodzaje style: Font.STYLE BOLD Font.STYLE ITALIC Font.STYLE PLAIN Font.STYLE UNDERLINED Rodzaje size: Font.SIZE SMALL Font.SIZE MEDIUM Font.SIZE LARGE Pamiętaj, że. . . Pamiętaj, że nie zawsze uzyskasz pożądane czcionki!!! Marcin Majak Wyskopoziomowe GUI 30/46
  • 31. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 31/46
  • 32. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Ticker I Ticker Tekst przelatujący u góry ekranu, dostępny na dowolnym ekranie za pomocą metody setTicker z klasy Displayable. Przykład wykorzystania1 Alert alert = new Alert(Loading,2 Trwa ładowanie gry, proszę czekać...,3 null,4 AlertType.INFO);5 alert.setTimeout(Alert.FOREVER);6 Ticker ticker = new Ticker(REKLAMA!!!);7 alert.setTicker(ticker); Marcin Majak Wyskopoziomowe GUI 32/46
  • 33. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 33/46
  • 34. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Bonusy I Jeśli chcemy wywołać wibrację w telefonie, wystarczy wpisać: Display display = Display.getDisplay(this); display.vibrate(200); Wywołanie jest asynchroniczne i nie blokuje telefonu. Marcin Majak Wyskopoziomowe GUI 34/46
  • 35. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Pamięć I Runtime rt = Runtime.getRuntime(); rt.totalMemory(); rt.freeMemory(); Marcin Majak Wyskopoziomowe GUI 35/46
  • 36. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Wyświetlacz I Display d = Display.getDisplay(this); d.isColor(); d.numColors(); d.numAlphaLevels(); Marcin Majak Wyskopoziomowe GUI 36/46
  • 37. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Canvas I c.getWidth(); c.getHeight(); c.isDoubleBuffered(); c.hasPointerEvents(); c.hasPointerMotionEvents(); c.hasRepeatEvents(); Marcin Majak Wyskopoziomowe GUI 37/46
  • 38. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Plan prezentacji 1 Wprowadzenie 2 Form 3 Przegląd elementów formularza 4 Wyświetlanie komunikatów 5 Lista 6 Jak zmienić czcionkę? 7 Ticker 8 Dodatkowe 9 Przykłady użycia Marcin Majak Wyskopoziomowe GUI 38/46
  • 39. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Gauge i Timer I 1 Gauge m_Gauge; 2 java.util.Timer m_Timer; 3 protected void startApp() 4 throws MIDletStateChangeException 5 { 6 Alert alert = new Alert( 7 Loading, 8 Trwa ładowanie gry..., } 9 null,10 AlertType.INFO);11 alert.setTimeout(Alert.FOREVER);12 m_Gauge = new Gauge(null, false, 9, 0);13 alert.setIndicator(m_Gauge);14 Display display = Display.getDisplay(this);15 display.setCurrent(alert);16 m_Timer = new java.util.Timer();17 m_Timer.schedule(new MyTask(), 500, 500);18 } Marcin Majak Wyskopoziomowe GUI 39/46
  • 40. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Gauge i Timer II1 private class MyTask extends2 java.util.TimerTask3 {4 public void run()5 {6 m_Gauge.setValue(7 m_Gauge.getValue() + 1);8 } Marcin Majak Wyskopoziomowe GUI 40/46
  • 41. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Gauge i Timer III Marcin Majak Wyskopoziomowe GUI 41/46
  • 42. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009 Prosty formularz I 1 m_Form = new Form(Formularz); 2 Item item; 3 item = new StringItem(Twoje dane, Tu wpisz swojene, 0); 4 item.setLayout(Item.LAYOUT_2 | 5 Item.LAYOUT_NEWLINE_AFTER); 6 m_Form.append(item); 7 item = new TextField(Imię, Twoje imię, 32, 0); 8 item.setLayout(Item.LAYOUT_2 | 9 Item.LAYOUT_NEWLINE_AFTER);10 m_Form.append(item);11 item = new TextField(Nazwisko, Twoje nazwisko, 32, 0);12 item.setLayout(Item.LAYOUT_2 |13 Item.LAYOUT_NEWLINE_AFTER);14 m_Form.append(item);15 m_Form.setCommandListener(this);16 m_Form.addCommand(new Command(OK, Command.OK, 0));17 Display display = Display.getDisplay(this);18 display.setCurrent(m_Form); Marcin Majak Wyskopoziomowe GUI 42/46
  • 43. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009 Alert prawie jak Windows Message Box I 1 // Utworz ekran komunikatu 2 Alert alert = new Alert( 3 Błąd, // title 4 Nie można otworzyć pliku., // alertText 5 null, // alertImage 6 AlertType.ERROR); // alertType 7 // Pobierz uchwyt wyswietlacza 8 Display display = Display.getDisplay(this); 9 // Pokaz komunikat na wyswietlaczu10 display.setCurrent(alert); Marcin Majak Wyskopoziomowe GUI 43/46
  • 44. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Pytania ? Marcin Majak Wyskopoziomowe GUI 44/46
  • 45. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Kolejne spotkanie Temat: Wprowadzenie do Ray casting’u w j2me Prowadzenie: Marcin Majak Data: 19.11.2009, godzina: 17.00 Gdzie: sala 23 C-3 Marcin Majak Wyskopoziomowe GUI 45/46
  • 46. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 12 listopada 2009Więcej informacji Kontakt z autorem: 164000@student.pwr.wroc.pl Strona koła naukowego ISA2 http://autonom.ict.pwr.wroc.pl/ Strona warsztatów: http://autonom.ict.pwr.wroc.pl/∼mstachniuk Adres tego dokumentu: http://autonom.ict.pwr.wroc.pl/∼mstachniuk/files/warsztaty2009/04-highlevel-2009.11.12.pdf MID Profile - dokumentacja Javadoc http://java.sun.com/javame/reference/apis/jsr118/ Creating 2D Action Games with the Game API http://developers.sun.com/mobility/midp/articles/game/ Getting Started With the MIDP 2.0 Game API http://developers.sun.com/mobility/midp/articles/gameapi/ GameCanvas - czyli dalej rysujemy po ekranie http://4programmers.net/Java/J2ME/GameCanvas - czyli dalej rysujemy po ekranie NetBeans http://www.netbeans.org/ Marcin Majak Wyskopoziomowe GUI 46/46

×