Applety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej

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

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

Multimedia JAVA. Historia

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

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

Dziedziczenie. dr Jarosław Skaruz

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

Java - interfejs graficzny

Java SE Laboratorium nr 5. Temat: Obsługa zdarzeń

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

Programowanie obiektowe

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Programowanie obiektowe

Programowanie obiektowe

Podstawowe informacje o apletach

Programowanie w Internecie. Java

Programowanie zdarzeniowe

Bezpieczne uruchamianie apletów wg

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Klasy abstrakcyjne i interfejsy

1 Atrybuty i metody klasowe

Programowanie Obiektowe GUI

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje w Javie- wykład 11 Wątki-podstawy

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Programowanie obiektowe zastosowanie języka Java SE

Java Podstawy. Michał Bereta

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

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

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

Projektowanie aplikacji internetowych laboratorium

Kontenery i komponenty graficzne

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Wykład 7: Pakiety i Interfejsy

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

Programowanie komponentowe

Architektura interfejsu użytkownika

Java jako język programowania

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Microsoft Visual C++

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

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Wykład 1: Wprowadzenie do technologii Java

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

LABORATORIUM 7 Cel: 1_1

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Java: interfejsy i klasy wewnętrzne

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Tworzenie elementów graficznych

Dokumentacja do API Javy.

Programowanie graficznych interfejsów użytkownika

Technologie i usługi internetowe cz. 2

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Wprowadzenie do tworzenia własnego modułu w kontrolerze Floodlight.

Aplikacje WWW - laboratorium

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

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

WPROWADZENIE DO JĘZYKA JAVA

Wykład 5 Okna MDI i SDI, dziedziczenie

Wybrane działy Informatyki Stosowanej

Enkapsulacja, dziedziczenie, polimorfizm

System Informatyczny CELAB. Obsługa sprzedaży detalicznej krok po kroku

Język programowania. Andrzej Bobyk

Współbieżność w środowisku Java

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Zaawansowane aplikacje WWW - laboratorium

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

WPROWADZENIE DO JĘZYKA JAVA

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy.

Enterprise JavaBeans (EJB)

Wybrane działy Informatyki Stosowanej

Wywoływanie metod zdalnych

Obsługa zdarzeń. Wykład 4

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

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

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

VBA praca z makrami w Excelu

Podstawy Swing. Tomasz Borzyszkowski

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

Podstawy otwartych języków programowania Język Java

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Przypomnienie o klasach i obiektach

Programowanie w Javie

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

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

Programowanie obiektowe. Wprowadzenie

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

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Transkrypt:

Applety Java Są to komponenty stron WWW o ukrytym kodzie Applety są pisane w zwykłej Javie i dlatego kompilowane do pliku(ów) *.class, a nie interpretowane jak skrypty w JavaScript Aby przeglądarka odtwarzała applety, musi mieć JVM dlatego w starszych wersjach MSIE przy uruchomieniu pierwszego appletu konieczna była instalacja JVM Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej

Applety cd. Zaletą appletu jest niedostępność jego źródeł, wadą skomplikowany proces przebudowy, dłuższy od skryptu czas wykonywania Applet można zdisassemblować [JavaHome]\bin\javap -c plik_class Odczytamy w ten sposób ilość i nazwy klas ilość i nazwy metod w tych klasach ilość i miejsca wywołań tych metod przykład

Klasy tworzące applet java.lang.object +--java.awt.component +--java.awt.container +--java.awt.panel +--java.applet.applet ImageObserver, MenuContainer, Serializable public class MyApplet JApplet ew. na bazie pakietu javax.swing

Jak działa applet??? paint(graphics) repaint()

Funkcje klasy Applet Sterujące wyglądem appletu resize(int,int); resize(dim); paint(graphics) Współpraca ze stroną WWW isactive();showstatus(string);getdocumentbase() getparameter(); getimage(url) Multimedialne newaudioclip(url); getaudioclip(url); play(url) Zarządzające komponentami i zdarzeniami (dziedziczone z Container) add(komponent); additemlistener(pojemnik)

Funkcje specjalne Funkcje specjalne zarządzające cyklem życia appletu; called by the browser (wg dokumentacji) void init( ) przydział pamięci dla zmiennych, przypisanie wartości pocz. void paint(graphics g) (maluj ) rysowanie zawartości okna apletu, obowiązkowa redef. repaint() odświeżenie okna appletu Inne start(),stop(),destroy(), run()-zarządzanie wątkami Tyloch, rozdział 2.6 Przykłady: Holzner, Clickers, Checkers, Dauber, Sandwich, itd.

Aplikacje interaktywne Pojęcia podstawowe, Tyloch rozdz. 2.6.3 Zdarzenie dowolne działanie użytkownika w systemie/aplikacji; kliknięcie, ruch myszą, użycie klawisza itp. Komunikat sygnał przekazujący do aplikacji parametry zdarzenia, np. który button kliknięto, jakie są nowe współrzędne położenia kursora myszy, kod użytego klawisza itp. Handler (ang. handle, obsługiwać) fragment kodu wykonywany w przypadku pojawienia się komunikatu, odpowiedź na zdarzenie

Przykłady handlerów C/C++: OnButton1Click(...) //MFC 4.2 OnMouseMove(...) { // funkcja jest składową jednej z klas interfejsu, np. klasy okna aplikacji, klasy widoku itp. } JavaactionPerformed(ActionEvent e) { if (e.getsource() == button1) {...} } Zasada akcja-reakcja

Pętla obsługi zdarzeń N N Czy zaszło zdarzenie? Czy w aplikacji jest handler? Nasłuchuj dalej... Odczytaj parametry zdarzenia T T handler() Wygeneruj komunikat handler() T Czy w sys.op. jest handler? N Ctrl+Esc Corel

Pętla obsługi zdarzeń cd. Wyjście z pętli na poziomie aplikacji następuje po wywołaniu handlera exitapplication (w aplikacji aktywnej) Alt+F4, kliknięcie krzyżyka, menu Zakończ itp. Wyjście z pętli obsługi zdarzeń na poziomie systemu następuje w przypadku zamknięcia systemu

Relacja zdarzenie-handler Jeden handler może być wywołany dla kilku różnych zdarzeń Ctrl+S, Menu File-Save, kliknięcie dyskietki na toolbarze <Ctrl+S> OnFileSave() Jedno zdarzenie może mieć przypisany tylko jeden handler Wiele do jednego

Klasyczny i delegacyjny model obsługi zdarzeń Tyloch, rozdz. 2.6.3 Model klasyczny (tradycyjny) Handler jest składową obiektu przyjmującego zdarzenie (najczęściej odziedziczoną po klasie nadrzędnej) Handler jest osobną funkcją wyspecjalizowaną w obsłudze konkretnego zdarzenia (1 funkcja 1 zdarzenie )* public class MouseOperations extends Applet { public boolean mouseup(event event, int x,int y) {...} public boolean mousedown(event event, int x,int y) {...} } public boolean mousedrag(event event, int x,int y) {... }...

Wady modelu tradycyjnego W modelu tradycyjnym klasa gotowa przyjąć zdarzenie musi mieć handler na każdą okazję duży rozmiar kodu źródłowego zob. w dokumentacji konieczność dziedziczenia wszystkich potencjalnych handlerów do klas, które nie zamierzają z nich korzystać; zmniejsza to przestrzeń nazw metod java.applet.applet dziedziczy te wszystkie funkcje po java.awt.component dokumentacja brak realizacji zasady enkapsulacji obsługę zdarzeń można by przenieść do klasy wyspecjalizowanej tylko w odpowiadaniu na zdarzenia przykład z Tylocha rozdz. 2.6.3

Model semi-delegacyjny MFC 4.2 Microsoft Foundation Class Analogicznie JFC MFC 4.2 (model semi-delegacyjny) zdarzenie trafia do kolejnych klas aplikacji (lub ich przodków) wg ustalonego porządku: widokdokument-ramka-aplikacja

Model delegacyjny w Javie (1) Od kwietnia 1997, JDK 1.1 Handler jest funkcją lub fragmentem funkcji zadeklarowanej w implementowanym interfejsie Obiekt obłsugujący zdarzenie nie musi mieć Zdarzenie można obsłużyć w dowolnej innej klasie, czyli oddelegować je. Przykład: Tyloch, rozdz. 2.6.3

Model delegacyjny w Javie (2) Java zdarzenie trafia do klasy aplikacji, stamtąd delegowane jest do metody zarejestrowanego interfejsu w tej lub w innej klasie Zasady obsługi zdarzeń w modelu delegacyjnym. 1. Deklaracja klasy (przeznaczonej do obsługi) implementującej odpowiedni interfejs nasłuchujący 2. Rejestracja dla danego komponentu obiektu klasy nasłuchującej czyli ''kto odpowiada za obsługę kliknięcia przycisku?'' Przykład z tą samą klasą: Holzner/clickers kontrolka.addcośtamlistener(this) Przykład z klasą wyspecjalizowaną: Tyloch kontrolka.addcośtamlistener(ob_z_handlerami) 3. Implementacja metod z interfejsu nasłuchującego.

Warianty obsługi zdarzeń w modelu delegacyjnym Dotyczy punktu 2. z poprzedniego slajdu Klasa wyspecjalizowana w obłsudze zdarzeń może być Tą samą klasą której komponent przyjmuje zdarzenie Klasą zewnętrzną względem przyjmującej zdarzenie Klasą wewnętrzną względem przyjmującej zdarzenie Klasą anonimową (!!!) (JCreator, v. 3.1 i nowsze) Klasą adaptacyjną skojarzoną z danym interfejsem wewnętrzną lub zewnętrzną