Java jako zdalny interfejs aplikacji Webowych aplety

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

Interfejs graczny w Javie.

Wykład 11: Programowanie Apletów

Podstawy programowania GUI niskiego poziomu. APLETY.

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

Programowanie komputerów Wykład 6: Aplety Java

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

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016

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

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

Podstawy Programowania

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

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

Multimedia JAVA. Historia

Laboratorium z informatyki sem. III/ćw. 2 Wydział Transportu PW /19 MATERIAŁY POMOCNICZE DO ĆWICZENIA 2

Programowanie obiektowe

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

Aplikacja wielow tkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator

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

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Java Foundation Clases. Tworzenie graficznych interfejsów użytkownika (GUI) w Javie

Operatory. Składnia. Typy proste. Znaki specjalne

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

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

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

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

Podstawowe informacje o apletach

Bezpieczne uruchamianie apletów wg

LABORATORIUM TEMAT ĆWICZENIA: Wykorzystanie języka programowania JAVA do tworzenia multimedialnych i interaktywnych stron usługi WWW

Kurs programowania. Wykład 5. Wojciech Macyna. 31 marzec 2016

Java Platform Micro Edition

Tworzenie i wykorzystanie usług

Programowanie obiektowe zastosowanie języka Java SE

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

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

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski. Zaawansowane Systemy Decyzyjne. Laboratorium

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

Podpisywanie i bezpieczne uruchamianie apletów wg

grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie

PROJEKTOWANIE ABSTRAKCYJNEJ KLASY FIGURA PRZECHOWUJĄCEJ WSPÓLNE CECHY OBIEKTÓW GRAFICZNYCH

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

Programowanie obiektowe

Wykład 12: Obsługa Zdarzeń

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

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

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

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

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

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Aplikacje RMI Lab4

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

Programowanie graficznych interfejsów użytkownika

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Wywoływanie metod zdalnych

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

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Wstęp do programowania w języku Java

Programowanie Multimediów. Programowanie Multimediów JAVA. programowanie GUI. (AWT i Swing) [1]

Programowanie obiektowe

Wybrane działy Informatyki Stosowanej

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Praktyczny kurs Java. Wydanie II

1 Atrybuty i metody klasowe

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Język Java. Rysowanie GUI Określanie wyglądu komponentów

Definicja. Aplety są wykonywane po stronie klienta, serwlety po stronie serwera.

Podejście obiektowe do budowy systemów rozproszonych

Java a dost p do Internetu.

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

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

Język obiektowy o składni podobnej do C++ Zarządzanie pamięcią niepotrzebne obiekty automatycznie usuwane

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

Aplikacje RMI

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Języki i Techniki Programowania II. Wykład 13. TRaX, Applety, Java Security

Wywoływanie metod zdalnych

Obsługa zdarzeń. Wykład 4

Kontenery i komponenty graficzne

Programowanie Multimediów. Programowanie Multimediów JAVA. grafika w JAVA 2D API [1]

Tworzenie elementów graficznych

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

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Wstęp do programowania w języku Java

6.1 Pojęcie wątku programu 6.2 Klasy Timer, TimerTask 6.3 Klasa Thread 6.4 Synchronizacja pracy wątków 6.5 Grupowanie wątków

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Programowanie w języku Java

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Równolegªo± w Javie w tki.

Języki i metody programowania Java Obsługa zdarzeń - przykłady

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

Java jako język programowania

Kurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Wybrane działy Informatyki Stosowanej

Wstęp do programowania w języku Java

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Transkrypt:

Java jako zdalny interfejs aplikacji Webowych aplety Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 18.05.2017

Java Applet Aplet to specjalny typ programu, który jest osadzony na stronie internetowej w celu wygenerowania zawarto±ci dynamicznej. Wykonuje si w przegl darce i dziaªa po stronie klienta. Jak uruchomi aplet: przez plik html przez narz dzie appletviewer (np. w Eclipse) Zalety: Dziaªa po stronie klienta, wi c mniej czasu odpowiedzi. Jest zabezpieczony Mo»e by wykonywany przez przegl darkach dziaªaj cych pod kontrol wielu platform, w tym Linux Windows, Mac OS itp Wady: 2 / 28 Wtyczka jest wymagana w przegl darce klienta do uruchamiania apletu

Cykl»ycia apletu Aplet jest inicjowany. Aplet jest uruchamiany. Aplet jest rysowany. Aplet zostaje zatrzymany. Aplet jest zniszczony. 3 / 28

Metody do cyklu»ycia apletu Klasa java.applet.applet zawiera 4 metody cyklu»ycia a klasa java.awt.component zawiera 1 metod cyklu»ycia dla apletu. metody klasy java.applet.applet public void init (): sªu»y do inicjowania apletu. Jest wywoªywana tylko raz. public void start (): jest wywoªana po metodzie init () lub zmaksymalizowaniu przegl darki. Jest u»ywany do uruchamiania apletu. public void stop (): sªu»y do zatrzymywania apletu. Jest wywoªywana, gdy Applet jest zatrzymany lub minimalizuje si przegl dark. public void destroy (): sªu»y do zniszczenia apletu. Jest wywoªywana tylko raz. metoda klasy java.awt.component public void paint (Graphics g): sªu»y do malowania apletu. Zapewnia obiekt klasy Graphics, który mo»na wykorzysta do rysowania owalu, prostok ta, ªuku itp. 4 / 28

Pierwszy aplet - przykªad pliku java // First. java import java. applet. Applet ; import java. awt. Graphics ; public class First extends Applet { public void paint ( Graphics g ){ g. drawstring (" welcome ",150,150); 5 / 28

Pierwszy aplet - przykªad pliku First.html < html > < body > < applet code =" First. class " width =" 400 " height =" 400 " > Wtyczka Java nie jest zainstalowana! </ applet > </ body > </ html > 6 / 28

Pierwszy aplet - uruchomienie Uruchomienie w przegl darce - dziaªa, po zaakceptowaniu ostrze»e«uruchomienie w appletviewer: nale»y przerobi kod (doda tag applet na ko«cu w komentarzu): import java. applet. Applet ; import java. awt. Graphics ; public class First extends Applet { public void paint ( Graphics g ){ g. drawstring (" welcome ",150,150); /* < applet code =" First. class " width ="400" height ="400" > Wtyczka Java nie jest zainstalowana! </ applet > */ skompilowa i uruchomi poleceniem: appletviewer First.java 7 / 28

Wy±wietlanie graki w aplecie public abstract void drawstring(string str, int x, int y) public void drawrect(int x, int y, int width, int height) public abstract void llrect(int x, int y, int width, int height) public abstract void drawoval(int x, int y, int width, int height) public abstract void lloval(int x, int y, int width, int height) public abstract void drawline(int x1, int y1, int x2, int y2) public abstract boolean drawimage(image img, int x, int y, ImageObserver observer) public abstract void drawarc(int x, int y, int width, int height, int startangle, int arcangle) public abstract void llarc(int x, int y, int width, int height, int startangle, int arcangle) public abstract void setcolor(color c) public abstract void setfont(font font) 8 / 28

Rysowanie na aplecie - przykªad pliku java // GraphicsDemo. java import java. applet. Applet ; import java. awt.*; public class GraphicsDemo extends Applet { public void paint ( Graphics g ){ g. setcolor ( Color. red ); g. drawstring (" Welcome ",50, 50); g. setcolor ( Color. green ); g. drawline (20,30,20,300); g. drawrect (70,100,30,30); g. fillrect (170,100,30,30); g. drawoval (70,200,30,30); 9 / 28 g. setcolor ( Color. pink ); g. filloval (170,200,30,30); g. drawarc (90,150,30,30,30,270); g. fillarc (270,150,30,30,0,180);

Rysowanie na aplecie - przykªad pliku html < html > < body > < applet code =" GraphicsDemo. class " width =" 300 " height =" 300 " > Wtyczka Java nie jest zainstalowana! </ applet > </ body > </ html > 10 / 28

Wy±wietlanie obrazku - przykªad pliku java // DisplayImage. java import java. awt.*; import java. applet.*; public class DisplayImage extends Applet { Image picture ; public void init () { picture = getimage ( getdocumentbase (), " button_icon. png " ); public void paint ( Graphics g) { g. drawimage ( picture, 30,30, this ); 11 / 28

Wy±wietlanie obrazku na aplecie - problemy Java ma bardzo wiele ogranicze«bezpiecze«stwa (java.policy) Aby móc robi bardziej zaawansowane rzeczy (dost p do plików itp) trzeba mie odpowiednie uprawienia i PODPISA APLET! kompilowanie i podpisywanie apletu: > javac DisplayImage. java > jar cvf DisplayImage. jar DisplayImage. class > keytool - genkey - validity 3650 - keystore pkeystore - alias keyname > keytool - selfcert - keystore pkeystore - alias keyname - validity 3650 > jarsigner - keystore pkeystore DisplayImage. jar keyname potrzeba zmiany kodu html we wstawieniu apletu na stron 12 / 28

Wy±wietlanie obrazku - przykªad pliku html < html > < body > < applet code =" DisplayImage. class " archive =" DisplayImage. jar " width =" 300 " height =" 300 " > Wtyczka Java nie jest zainstalowana! </ applet > </ body > </ html > 13 / 28

Animacja na aplecie - przykªad pliku java // AnimationExample. java import java. awt.*; import java. applet.*; public class AnimationExample extends Applet { Image picture ; public void init () { picture = getimage ( getdocumentbase (), " bike. gif " ); public void paint ( Graphics g) { for ( int i =0; i <500; i ++){ g. drawimage ( picture, i,30, this ); try { Thread. sleep (100); catch ( Exception e ){ 14 / 28

Animacja na aplecie - przykªad pliku html < html > < body > < applet code =" AnimationExample. class " archive =" AnimationExample. jar " width =" 600 " height =" 400 " > Wtyczka Java nie jest zainstalowana! </ applet > </ body > </ html > 15 / 28

Obsªuga zdarze«w aplecie - przykªad pliku java // EventApplet. java import java. applet.*; import java. awt.*; import java. awt. event.*; public class EventApplet extends Applet implements ActionListener { Button b; TextField tf ; public void init (){ tf= new TextField (); tf. setbounds (30,40,150,20); b= new Button (" Click " ); b. setbounds (80,150,60,50); add (b ); add ( tf ); b. addactionlistener ( this ); setlayout ( null ); 16 / 28

Obsªuga zdarze«w aplecie - przykªad pliku html < html > < body > < applet code =" EventApplet. class " width =" 300 " height =" 300 " > Wtyczka Java nie jest zainstalowana! </ applet > </ body > </ html > 17 / 28

Aplet Swing - przykªad pliku java // EventJApplet. java import java. applet.*; import javax. swing.*; import java. awt. event.*; public class EventJApplet extends JApplet implements ActionListener { JButton b; JTextField tf ; public void init (){ tf= new JTextField (); tf. setbounds (30,40,150,20); b= new JButton (" Click " ); b. setbounds (80,150,70,40); add (b ); add ( tf ); b. addactionlistener ( this ); setlayout ( null ); public void actionperformed ( ActionEvent e ){ tf. settext (" Welcome " ); 18 / 28

Aplet Swing - przykªad pliku html < html > < body > < applet code =" EventJApplet. class " width =" 300 " height =" 300 " > Wtyczka Java nie jest zainstalowana! </ applet > </ body > </ html > 19 / 28

Paint w aplecie - przykªad pliku java // MouseDrag. java import java. awt.*; import java. awt. event.*; import java. applet.*; public class MouseDrag extends Applet implements MouseMotionListener { public void init (){ addmousemotionlistener ( this ); setbackground ( Color. red ); public void mousedragged ( MouseEvent me ){ Graphics g= getgraphics (); g. setcolor ( Color. white ); g. filloval ( me. getx (), me. gety (),5,5); public void mousemoved ( MouseEvent me ){ 20 / 28

Paint w aplecie - przykªad pliku html < html > < body > < applet code =" MouseDrag. class " width =" 400 " height =" 400 " > Wtyczka Java nie jest zainstalowana! </ applet > </ body > </ html > 21 / 28

Wielow tkowo± - przykªad pliku java (1/2) // DigitalClock. java import java. applet.*; import java. awt.*; import java. util.*; import java. text.*; public class DigitalClock extends Applet implements Runnable { Thread t = null ; int hours =0, minutes =0, seconds =0; String timestring = ""; public void init () { setbackground ( Color. green ); public void start () { t = new Thread ( this ); t. start (); 22 / 28

Wielow tkowo± - przykªad pliku java (2/2) public class DigitalClock {... public void run () { try { while ( true ) { Calendar cal = Calendar. getinstance (); hours = cal. get ( Calendar. HOUR_OF_DAY ); if ( hours > 12 ) hours -= 12; minutes = cal. get ( Calendar. MINUTE ); seconds = cal. get ( Calendar. SECOND ); SimpleDateFormat formatter = new SimpleDateFormat (" hh : mm : ss Date date = cal. gettime (); timestring = formatter. format ( date ); repaint (); t. sleep ( 1000 ); // ±pimy sekund catch ( Exception e) { public void paint ( Graphics g ) { g. setcolor ( Color. blue ); g. drawstring ( timestring, 50, 50 ); 23 / 28

Paint w aplecie - przykªad pliku html < html > < body > < applet code =" DigitalClock. class " width =" 400 " height =" 400 " > Wtyczka Java nie jest zainstalowana! </ applet > </ body > </ html > 24 / 28

Przekazywanie parametrów do apletu - przykªad // UseParam. java import java. applet. Applet ; import java. awt. Graphics ; public class UseParam extends Applet { public void paint ( Graphics g ){ String str = getparameter (" msg " ); g. drawstring ( str,50, 50); <html > <body > < applet code =" UseParam. class " width =" 300 " height =" 300 " > <param name =" msg " value =" Welcome to applet " > </ applet > </ body > </ html > 25 / 28

Komunikacja pomi dzy apletami - przykªad pliku java import java. applet.*; import java. awt.*; import java. awt. event.*; public class ContextApplet extends Applet implements ActionListener { Button b; public void init (){ b= new Button (" Click " ); b. setbounds (50,50,60,50); add (b ); b. addactionlistener ( this ); public void actionperformed ( ActionEvent e ){ AppletContext ctx = getappletcontext (); Applet a= ctx. getapplet (" app2 " ); a. setbackground ( Color. yellow ); 26 / 28

Komunikacja pomi dzy apletami - przykªad pliku html < html > < body > < applet code =" ContextApplet. class " width =" 150 " height =" 150 " name =" app1 " > </ applet > < applet code =" First. class " width =" 300 " height =" 300 " name =" app2 " > </ applet > </ body > </ html > 27 / 28

28 / 28 Pytania?