Podstawy programowania GUI niskiego poziomu. APLETY.

Podobne dokumenty
Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej

Programowanie obiektowe

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

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

Programowanie obiektowe zastosowanie języka Java SE

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

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

Programowanie komputerów Wykład 6: Aplety Java

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

Wykład 11: Programowanie Apletów

Programowanie aplikacji na urządzenia mobilne

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit)

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

Java jako język programowania

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

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

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Wybrane działy Informatyki Stosowanej

Grafika i komunikacja człowiek komputer Laboratorium. Część 3: Tekst, czcionki, kolory

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Multimedia JAVA. Historia

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

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

Java jako zdalny interfejs aplikacji Webowych aplety

PAMIĘĆ OPERACYJNA...107

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

Wstęp do programowania w języku Java

WPROWADZENIE DO JĘZYKA JAVA

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Microsoft Small Basic

Informatyka I. dr inż. Andrzej Czerepicki.

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

Grafika i komunikacja człowiek komputer Laboratorium. Część 2: Graphics

Instrukcja obsługi notowań koszykowych w M@klerPlus

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: Wersja: 1.

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

Wyświetlanie publikacji w formacie DjVu. Wyświetlanie publikacji w Bałtyckiej Bibliotece Cyfrowej można realizować na 3 sposoby:

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

Zawartość specyfikacji:

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

Praktyczny kurs Java. Wydanie II

Podstawowe informacje o apletach

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Podstawy Programowania

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

Wykorzystano fragmenty wykładu Krystyny Dziubich GRAFIKA WEKTOROWA. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska.

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Wstęp do programowania w języku Java

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Kancelaria Prawna.WEB - POMOC

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

INSTRUKCJA DO ĆWICZENIA 13. Animacja wielowątkowa w aplikacjach JME. Gra logistyczna.

Visual Studio instalacja

Część II Wyświetlanie obrazów

Tworzenie elementów graficznych

Szybkie tworzenie grafiki w GcIde

Justyna Klimczyk Nauczyciel informatyki Gimnazjum im. Władysława Stanisława Reymonta w Kleszczowie

Instalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition

WPROWADZENIE DO JĘZYKA JAVA

GUI - projektowanie interfejsów cz. II

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

OpenLaszlo. OpenLaszlo

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Programowanie gier 3D w HTML5. Andrzej P.Urbański Politechnika Poznańska

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa

POMOC / INSTRUKCJA OBSŁUGI

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Przewodnik użytkownika (instrukcja) AutoMagicTest

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Wykład 1: Wprowadzenie do technologii Java

Kurs programowania 2 - listy

HTML (HyperText Markup Language) hipertekstowy język znaczników

Kurs WWW. Paweł Rajba.

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

Delphi podstawy programowania. Środowisko Delphi

Podstawy technologii WWW

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

7. Dynamiczne generowanie grafiki

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

elektroniczna Platforma Usług Administracji Publicznej

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Zdalny podgląd wizualizacji z panelu XV100 przez przeglądarkę internetową (WebServer)

3.4. Opis konfiguracji layoutów.

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Aplikacje w środowisku Java

Tomasz Greszata - Koszalin

Transkrypt:

Informatyka I Podstawy programowania GUI niskiego poziomu. APLETY. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018

Aplety Java Aplet (ang. Applet) program z interfejsem graficznym dedykowany do wykonania w oknie przeglądarki internetowej Rozszerza funkcjonalność stron WWW w zakresie graficznych aplikacji, interakcji z użytkownikiem, komunikacji sieciowej itp. Ma ograniczony dostęp do zasobów komputera (wirtualne środowisko) Wymaga posiadania JRE na komputerze

Infrastruktura otoczenia apletów Aplet Wirtualny dysk Wirtualna pamięć JRE Wirtualny procesor Przeglądarka WWW Stacja robocza Środowisko uruchomieniowe

Struktura apletu Java Aplet Java powinien posiadać przynajmniej jedną klasę typu public Aplet może korzystać z klas pomocniczych public KlasaGłównaApletu Klasy pomocnicze Aplet Java

Metody uruchomienia apletów Java W oknie przeglądarki jako część strony internetowej (jedna strona może uruchamiać wiele apletów) Za pomocą narzędzia do testowania apletów AppletViewer (środowisko NetBeans lub inne) Apletu nie można uruchomić jako samodzielnego programu

Klasa główna apletu Java Klasa główna apletu jest pochodną klas java.applet lub java.swing.japplet Klasa java.applet LUB Klasa główna apletu Klasa java.swing.japplet Dziedziczenie

Cykl życia apletu init() inicjalizacja zatrzymany start() start() stop() destroy () aktywny finalizacja

Metody apletu init() Jednokrotnie wołana metoda przy ładowaniu apletu do pamięci komputera (otwarcie strony internetowej) Jednorazowa inicjalizacja obiektów apletu start() Metoda wołana za każdym razem kiedy okno ze stroną apletu staje się aktywne stop() Metoda wołana gdy okno przeglądarki z apletem staje się nieaktywne (minimalizacja, otwarcie nowego okna itp.) destroy() Metoda wołana jednokrotnie gdy aplet kończy swoje działanie Używana jest do zwolnienia zajętej pamięci oraz niszczenia obiektów (nieobowiązkowo)

Interfejsy użytkownika apletu Java Interfejs graficzny: obiekt klasy Graphics (biblioteka AWT) Formatki GUI wysokiego poziomu (biblioteka Swing) Interfejs obsługi zdarzeń myszy MouseListener MouseMotionListener Interfejs obsługi zdarzeń klawiatury KeyListener

Interfejs graficzny apletu metoda paint(graphics g) Rysuje zawartość okna apletu z wykorzystaniem kontekstu graficznego g Metoda jest wołana przy każdej zmianie wymagającej odświeżania informacji w oknie metoda repaint() Wymusza odświeżanie całego okna repaint( parametry ) wymusza odświeżanie wybranego obszaru okna

Klasa Graphics Klasa Graphics reprezentuje obszar logiczny (tzw. kontekst urządzenia graficznego) do rysowania prymitywnych obiektów graficznych Egzemplarza klasy Graphics nie można stworzyć jest on przekazywany użytkownikowi automatycznie w postaci argumentu metody (paint, print, etc.)

Oś rzędnych Y Układ współrzędnych Graphics (x,y) = (0, 0) Oś odciętych X Początek układu współrzędnych (0, 0)

getheight() Rozmiar okna apletu Można zmienić za pomocą metody setsize( szerokość, wysokość ) Wymiary przestrzeni graficznej można sprawdzić na bieżąco za pomocą metod getwidth() getheight() getwidth()

Zasady rysowania obiektów graficznych Kontury obiektów są rysowane za pomocą metod draw drawline, drawrect, drawellipse, Obiekty wypełniane kolorem są rysowane za pomocą metod fill fillrect, fillellipse, Tekst jest wyświetlany z użyciem wybranej czcionki (ang. Font) oraz koloru

Klasa java.awt.color Reprezentuje kolor z palety 16 mln kolorów Składniki: R(ed), G(reen), B(lue) Każdy składnik może przybierać wartość od 0 do 255 0 = brak koloru 255 = maksymalna intensywność koloru Kolory predefiniowane: Color.RED, Color.ORANGE,. Kolor losowy Random r = new Random(); Color k = new Color( r.nextint(256), r.nextint(256), r.nextint(256) );

Przykłady rysowania konturów obiektów drawline( x1, y1, x2, y2 ) Rysuje ciągła linię z punktu o współrzędnych (x1, y1) do punktu o współrzędnych (x2, y2) drawrect( x1, y1, width, height ) Rysuje prostokąt o współrzędnych lewego górnego roku ( x1, y1 ) i wymiarach width x height drawoval(x1, y1, width, height ) Rysuje owal wpisany do prostokąta o wymiarach i pozycji j.w. drawpolygon( X[], Y[], count ) Rysuje wielobok zadany poprzez zbiór wierzchołków (tablica X, Y)

Przykłady wypełniania obiektów Obiekty są wypełniane bieżącym kolorem Zmiana bieżącego koloru setcolor( Color ) Przykłady: fillrect( x1, y1, width, height ) filloval(x1, y1, width, height ) fillpolygon( []X, []Y, count )

Wyświetlanie tekstu Wyświetla zawartość zmiennej tekst w pozycji (x, y) za pomocą bieżącej czcionki drawstring( tekst, x, y ) Tworzenie nowej czcionki Font f = new Font("Calibri", Font.BOLD, 72) Zmiana bieżącej czcionki w obiekcie Graphics g.setfont( f )

Kalkulacja wymiarów tekstu Wymiary tekstu na ekranie zależą od: Rodzaju ekranu (obiekt Graphics) Wybranej czcionki Samego tekstu (szerokości znaków są różne!) Należy pobrać obiekt FontMetrics i sprawdzić jego właściwości, np.: int cx = g.getfontmetrics(f).stringwidth("witam");

Wyświetlanie obrazków Zadeklarować obiekt klasy Image Image samolot; Załadować obrazek z pliku graficznego za pomocą klasy ImageIcon samolot = new ImageIcon("samolot.png").getImage(); Wyświetlić plik na ekranie g.drawimage(samolot, 50, 50, null);

Podstawy animacji Narysować bieżące położenie obiektów w metodzie paint() Odczekać dt msek. Thread.sleep( dt ) Zmienić położenie obiektów Wymusić odświeżanie panelu metodą repaint()

Kompilacja Kompilacja apletu Java Aplet kompiluje się do postaci kodu binarnego Kod binarny jest umieszczany na serwerze WWW Przeglądarka WWW pobiera plik apletu przy pierwszym wyświetleniu strony Aplet.java Aplet.class Strona WWW

Osadzanie apletu w kodzie HTML Znacznik <applet> lub <object> code codebase width height name align vspace hspace Nazwa klasy apletu (rozszerzenie *.class) Lokalizacja sieciowa (URL) plików *.class Szerokość okna apletu Wysokość okna apletu Nazwa apletu Wyrównanie apletu Odstęp w pionie od innych elementów na stronie Odstęp w poziomie od innych elementów na stronie

Parametry uruchomienia apletu Do apletu można przekazać dowolne parametry, wartości których mogą być zapisane w postaci tekstowej <APPLET codebase= > <param name= nazwa1 value= wartość1 /> <param name= nazwa2 value= wartość2 /> </APPLET>

Odczyt parametrów przez aplet Odczyt parametru odbywa się za pomocą funkcji getparameter( nazwa parametru ) która zwraca wartość typu String String imie = getparameter("imie") W razie konieczności przechowania danych innego typu, należy zadbać o konwersję typów

Bezpieczeństwo apletów Aplet - jako aplikacja aktywna - może stwarzać potencjalne zagrożenie dla komputera, na którym zostanie uruchomiony Dwa rodzaje zabezpieczenia apletów: Aplety podpisane cyfrowo (ang. signed) Aplety nie podpisane cyfrowo (ang. unsigned)

Aplety typu unsigned Aplety pochodzące z nieznanego źródła posiadają szereg ograniczeń, m. innymi: Brak dostępu do lokalnego systemu plików Brak możliwości kontaktowania się z serwerem innym niż serwer z którego pochodzą Brak dostępu do funkcji systemu operacyjnego Brak możliwości uruchomienia innych aplikacji itp.

Aplety typu signed Aplety podpisane cyfrowo z założenia pochodzą ze źródła zaufanego sprawdza tożsamość Klient Autor podpisuje Aplet Certyfikat wydaje Centrum Certyfik.

Aplety typu signed (c.d.) Aplet podpisany cyfrowo uzyskuje możliwości zbliżone do standardowych programów Podpis pozwala sprawdzić tożsamość autora lecz nie gwarantuje ochrony systemu przed błędami lub lukami w kodzie apletu Aplety napisane w starszych wersjach Java mogą posiadać poważne luki w zabezpieczeniach

Zalety apletów Java Łatwość programowania wystarczy znać język programowania Java Wieloplatformowość działa z większością współczesnych przeglądarek bez zmian w kodzie Nie obciążają serwera całkowicie wykonuje się po stronie klienta Szybkość ładowania potrafi się uruchamiać z pamięci podręcznej cache przeglądarki (bez pobierania z serwera)

Zalety apletów Java (c.d.) Szybkość działania zbliżona do szybkości działania zwykłych programów (m. innymi możliwość korzystania z bibliotek graficznych typu Open GL) Przechowanie stanu aplikacji (problem w klasycznych aplikacjach HTTP) Dostęp do zasobów lokalnych komputera dla podpisanych cyfrowo apletów (elastyczność) Możliwość wymiany danych z serwerem oraz częściowe przeniesienie przetwarzania danych na serwer

Wady apletów Nie są wspierane przez przeglądarki urządzeń mobilnych Wymagają instalowania komponentów Java na stacji roboczej (Java plug-in), co nie zawsze jest możliwe lub pożądane Przy pierwszym uruchomieniu aplet oczekuje na uruchomienie Java Virtual Machine długi czas pierwszego uruchomienia! Problemy bezpieczeństwa lokalnych danych

Tendencje współczesne Rozwój języka HTML sprawia iż coraz większą funkcjonalność strony WWW można zrealizować bez sięgania po dodatkowe narzędzia (takie jak Aplety) Przeglądarki internetowe stawiają coraz bardziej rygorystyczne wymagania co do bezpieczeństwa wykonywanych aplikacji (apletów) domyślnie większość rozszerzeń jest wyłączona

Języki programowania apletów Java (cross-platform) JavaScript + HTML5 (cross-platform) VBScript (tylko Internet Explorer) C / C++ (ActiveX, tylko Internet Explorer) Adobe Flash Formalnie jest dodatkiem (plug-in em) ale działa na podobnych zasadach Microsoft Silverlight etc.

Podsumowanie Aplety są najprostszym rodzajem aplikacji o możliwościach graficznych Klasa Graphics jest standardem dla graficznego interfejsu GUI niskiego poziomu Praktyczne zastosowania apletów są coraz rzadsze ze względu na rygorystyczne wymogi bezpieczeństwa przeglądarek oraz rozwój konkurujących technologii

Podsumowanie (c.d.) Obszarem potencjalnych zastosowań apletów Java mogą być sieci wewnętrzne (Intranet) firm, w których łatwiej jest o: Zapewnienie bezpieczeństwa uruchamianych skryptów (apletów) Standaryzację oraz jednolitą konfigurację przeglądarek Centralizowaną instalację identycznych wersji Java VM na każdej stacji roboczej

Przykłady pytań egzaminacyjnych Co to jest aplet? Czy aplet jest aplikacją samodzielną? Co jest wymagane w celu uruchomienia apletu w przeglądarce? Jak wygląda cykl życia apletu? Jak odbywa się komunikacja użytkownika z apletem? Wady i zalety apletów Bezpieczeństwo apletów