Co jeszcze mógłby wymyślić Einstein gdyby znał applety Javy? Dolnośląski Festiwal Nauki i Techniki Wrocław 2005 Plan • Bazy danych • Czat • Applety Bazy danych • Java pozwala na pracę zarówno z prostymi bazami danych (pliki tekstowe) jak, również z bazami relacyjnymi (mySQL, Oracle itd.) • Polimorfizm pozwlający na dziedziczenie metod obsługujących bazy danych z pakietu java.sql • JDBC (Java DataBase Connectivity) i ODBC (Open DataBase Connectivity) • Książka telefoniczna Czat • Java oferuje mechanizm komunikacyjny oparty na tzw.gniazdkach (ang.sockets) • Zestaw metod obsługujących usługi sieciowe zawarto w pakiecie java.net • Czym są gniazda i w jaki sposób następuje między nimi wymiana danych? • Gniazda klienckie, serwerowe, adres IP, numer portu Applety • Czym Applety różnią się od Aplikacji? • Sandbox - zestaw obostrzeń w jakie wyposażono Applety w celach bezpieczeństwa Applety • Tworzenie Appletów • Public class myClass extends java.applet.Applet{...} Applety • Inicjalizacja (ang. Initialization), stanowi o “zachowaniu” appletu • Start (ang. Starting), uruchomienie • Stop • Usunięcie (ang. Destroying), nie tak brutalne na jakie może wyglądać • Painting, tłum. Malowanie, nie najpoprawniejsze Applety • #1 Checkers Applety • cd. #1 Checkers • xpos – zmienna xpos przechowuje poczatkową pozycję koła, które porusza się horyzontalnie; • ypos – o ile wartość przechowywana przez zmienną xpos pozostaje stała, o tyle wartość ypos jest powiększana, co powoduje efekt obrotu się koła. Applety • cd. #1 Checkers • Run() - metoda zmienia wartość x i przemawlowuje (repaint()) applet wywołując efekt obrotu koła z zachowaniem 100ms opóźnienia pomiędzy każdym kolejnym ruchem • paint() - ustawia kolor tła appletu (czarny i biały) Applety • #2 Digital Clock Applety • cd. #2 Digital Clock • class Date – klasa odpowiedzialna za datę i godzinę wyświetlane przez Applet. Date jest częścią pakietu java.util importowanego w linii 3. • theDate – zmienna przechowuje bieżącą datę i czas. Applety • cd. #2 Digital Clock • Sleep() - przy wykorzystaniu metody sleep() linie 14 i 15 powodują wstrzymanie działania appletu na 1000 ms zanim pętla zostanie powtórzona. • Paint() - w liniach 34-37 zostały ustawione czcionki, jak również data uległa przeformatowaniu z typu Date na typ łąńcucha znaków przy wykorzystaniu metody toString(). Applety • #3 Lady Bug Applety • cd. #3 Lady Bug • bugimg – zmienna typu Image przechowuje zdjęcie • init() - wczytuje zdjęcie • paint() - wyświetla zdjęcie na ekranie Applety • cd. #3 Lady Bug • drawImage() - korzysta z 6 argumentów : zdjęcie, kolejne współrzędne x i y położenia zdjęcia, szerokość i wysokość zdjęcia, metoda this. Metoda drawImage() służy do pozycjonowania i dopasowania rozmiarów zdjęcia. Applety • #4 Neko Applety • cd. #4 Neko • Neko – to jedna z pierwszych animowanych gier na Macintosh, została napisana przez japończyka Kenji Gotho w 1989 i zinterpretowana na wszelkie możliwe języki programowania. “Neko” oznacza po japońsku “kot”. Applety • cd. #4 Neko • Wczytywanie zdjęć. • Tworzymy tablicę przechowującą zdjęcia – nekopics, oraz zmienną typu Image przechowującą bieżące zdjęcie – currentimg. • Metoda init() wczytuje kolejne zdjęcia do tablicy. Applety • cd. #4 Neko • Animacja zdjęć • W metodzie void nekorun (int start, int end){ }, pozycja start stanowi o początku, a end o końcu animacji. Dla każdej iteracji pętli ustawia się bieżącą wartość x oraz bieżące currentimg. Następnie wywoływana zostaje metoda repaint() oraz pause.