Programowanie sieciowe w Javie

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Programowanie sieciowe w Javie
Wstęp do strumieni danych
Java dla studentów II roku Wydziału Fizyki PW Przemysław Duda, 2012
Mgr inż.Marcin Borkowski Podstawy Java Część II
Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe Andrzej Ziółkowski Wykład 3.
Rysowanie GUI Określanie wyglądu komponentów
Tworzenie i obsługa programów – przykład 3 uwagi cd. Wykorzystując różne klasy biblioteki języka Java należy pamiętać w jakim pakiecie się znajdują. Wszystkie.
Sposoby implementacji asocjacji
Java applet (c.d.) Nguyen Hung Son Uniwersytet Warszawski.
Programowanie Obiektowe w Javie (c.d.)
Nguyen Hung Son Uniwersytet Warszawski
Programowanie obiektowe w Javie
Podstawy języka Java Nguyen Hung Son Uniwersytet Warszawski.
RMI I RMI-IIOP Wprowadzenie Co to jest RMI?
KONKURS WIEDZY O SZTUCE
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Projektowanie interfejsu Pakiet AWT, komponenty i kontenery, klasa Component, metody klasy Component, klasa Label, komponenty tekstowe, klasa TextField,
Programowanie wielowątkowe
Multimedia Obrazy i dźwięki w apletach Javy, praca z tekstem, zdarzenia od myszki, obsługa wyjątków w Javie, aplety z wątkami, animacja poklatkowa.
Gniazda komunikacji sieciowej w języku Java
1 Podstawy apletów Co to jest aplet, cykl życia apletu, metody apletu, metoda paint(), czcionki, kolory, parametryzowanie apletu, układ współrzędnych ekranowych,
Plan Prezentacji Wczytywanie grafiki Wyświetlanie obrazów
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
1 Języki i techniki programowania prowadzący dr Grzegorz Filipczyk.
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
Język Java Wielowątkowość.
Hibernate relacje.
przygotował Michał Wdaniec
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Programowanie urządzeń mobilnych – wykład IV
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Tadeusz Ziębakowski Zachodniopomorski Uniwersytet Technologiczny.
Aplety w javie.
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
Otwieranie elementów w różnych ramkach
Programowanie obiektowe
Tworzenie aplikacji mobilnych
Programowanie obiektowe III rok EiT
Programowanie obiektowe
Programowanie obiektowe – zastosowanie języka Java SE
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Java – coś na temat Klas Piotr Rosik
Seminarium problemowe
Co jeszcze mógłby wymyślić Einstein gdyby znał applety Javy? Dolnośląski Festiwal Nauki i Techniki Wrocław 2005.
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
Programowanie sieciowe w Javie
OCPJP Inner classes.
Zaawansowane komponenty graficzne Swing
Podstawy HTML RAMKi. Ramki Za ich pomocą możesz swobodnie podzielić okno przeglądarki na kilka części i w nich niezależnie przeglądać dokumenty. Ramki.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
PROGRAMOWANIE W JAVA Informatyka Stosowana – ROK II / III Laboratoria mgr inż. Krzysztof Bzowski.
Programowanie sieciowe w Javie Michał Kuciapski
Model współbieżności w Javie autor: Grzegorz Szuba.
Model współbieżności w Javie
Programowanie sieciowe w Javie Michał Kuciapski
Biblioteki graficzne: Swing, AWT, SWT
InMoST, Java – przykładowa aplikacja Bartosz.Michalik
Wątki, programowanie współbieżne
(według:
(c) Krzysztof Barteczko 2014
Programowanie obiektowe – zastosowanie języka Java SE
Aplikacje i usługi internetowe
PGO Dziedziczenie Michail Mokkas.
Tworzenie wątków w Javie
Zapis prezentacji:

Programowanie sieciowe w Javie Michał Kuciapski m.kuciapski@univ.gda.pl

Metody sieciowe apletów

Metody sieciowe apletów Klasy tworzenia apletu

Wykorzystywane klasy Aby utworzyć aplet należy dziedziczyć po jednej z klas: java.applet.Applet javax.swing.JApplet Do tworzenia interfejsu graficznego używamy odpowiednio: java.awt.* - w przypadku tworzenia apletu jako Applet javax.swing.* - w przypadku tworzenia apletu jako JApplet

Metody sieciowe apletów Cykl życia apletu

Etapy cyklu życia Cykl życia aplety składa się z kilku etapów: public void init() public void start() public void stop() public void destroy() paint(Graphics g)

Przykład import java.applet.Applet; import java.awt.Graphics; public class CyklZyciaApletu extends Applet { StringBuffer tekstApletu; public void init() { tekstApletu = new StringBuffer(); dodajElement("inicjalizowanie... "); } public void start() { dodajElement("uruchamianie... "); } public void stop() { dodajElement("zatrzymanie... "); } public void destroy() { dodajElement("usuwanie..."); }

Przykład c.d. private void dodajElement(String tekst) { tekstApletu.append(tekst); repaint(); } public void paint(Graphics g) { g.drawOval(0,0,getWidth() - 10 , getHeight() - 10); g.drawString(tekstApletu.toString(), getWidth()/4, getHeight()/2);

Metody sieciowe apletów Pobieranie danych lokalizacji apletu

Miejsca pobierania danych Aplety pobierają najczęściej dane z: Katalogu, z którego aplet pochodzi – baza kodowa Katalogu strony HTML, w której aplet jest zagnieżdżony – baza dokumentowa Do ustalanie baz kodowej i dokumentowej służą odpowiednio metody: URL getCodeBase() – adres URL katalogu zawierającego aplet URL getDocumentBase() – adres URL strony zawierającej aplet

Przykład 1 import java.awt.Graphics; import java.applet.Applet; public class BazaApletu extends Applet { public void paint(Graphics g) g.drawString("Baza kodowa apletu: " + this.getCodeBase() .toString(), 20, 30); g.drawString("Baza dokumentowa apletu: " + this.getDocumentBase().toString(), 20, 50); }

Przykład 2 import javax.swing.*; public class BazaApletuSwing extends JApplet { public void init() { JLabel bazaKodowa = new JLabel(); JLabel bazaDokumentowa = new JLabel(); bazaKodowa.setText(this.getCodeBase().toString()); bazaDokumentowa.setText(this.getDocumentBase().toString()); getContentPane().setLayout(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS)); this.add(bazaKodowa); this.add(bazaDokumentowa); }

Metody sieciowe apletów Pobieranie i przesyłanie danych

Zastosowania Aplety w zakresie pobierania i przesyłania danych umożliwiają m.in.: Ładowanie obrazków Ładowanie dźwięków Wyświetlanie dokumentów Przesyłanie danych pomiędzy sobą

Ładowanie obrazków Ładowanie obrazków możliwe jest poprzez metody klasy Image : Image getImage(URL url) Image getImage(URL url, String nazwa) Metody te są dostępne poprzez: Klasę Applet Klasę java.awt.Toolkit – dzięki metodzie statycznej getDefaultToolkit()

Przykład import java.awt.*; import java.applet.*; import java.net.*; public class PobieranieObrazkow extends Applet { Image obrazek1; Image obrazek2; public void init() { try URL adres = new URL(this.getCodeBase(), this.getParameter("Obrazek1")); this.obrazek1 = this.getImage(adres);

Przykład c.d. Toolkit tk = java.awt.Toolkit.getDefaultToolkit(); adres = new URL(this.getCodeBase(), this.getParameter("Obrazek2")); obrazek2 = tk.getImage(adres); } catch(MalformedURLException e){} public void paint(Graphics g) { g.drawImage(obrazek1,0,0,this); // int szerokosc = obrazek1.getWidth(this); g.drawString("I jego najlepszy kumpel ;-)",50,180); g.drawImage(obrazek2,0,200,this);

Ładowanie dźwięku Ładowanie dźwięku możliwe jest porzez intefejs AudioClip pakietu Applet. Obsługiwanym przez Java API formatem począwszy od wersji 1.2 są: AIFF, AU (jednokanałowy, 8 bitowy, µlaw, 8000 Hz), WAV, MIDI (typ 0 i typ 1), RMF. Narzędziem umożliwiającym konwersję różnych formatów na ten format jest audiotool.

Ładowanie dźwięku - metody Utworzenie obiektu umożliwiającego odtwarzanie dźwięku dokonywane jest poprzez dwie metody: AudioClip getAudioClip(URL adres) AudioClip getAudioClip(URL adres, String nazwa) Interfejs AudioClip zawiera metody: void loop() play: void play(URL adres) void play(URL adres, String nazwa) void stop()

Przykład AudioClip dzwiek = this.getAudioClip(this.getCodeBase(),"Aplety/muzyka.au"); public void start() { if(loop == false) { dzwiek.loop(); loop = true; }} public void stop() { if(loop) dzwiek.stop(); loop = false;

Wyświetlanie dokumentów Za pomocą klasy AppletContext możliwe jest wyświetlanie dolumentów HTML w okienie przęgladarki. Służą do tego dwie metody: public void showDocument(URL adres) public void showDocument(URL adres, String doceloweOkno) Parametr doceloweOkno może mieć wartości: "_blank" "nazwaOkna" "_self" "_parent" "_top"

Wyświetlanie dokumentów - przykład AppletContext kontekst = this.getAppletContext(); String typOkna; if (jcbOkno.getSelectedItem().toString().equalsIgnoreCase("Nowe Okno")) typOkna = "_blank"; else typOkna = "_self"; try{ URL sciezka = new URL(this.getCodeBase() + "Aplety/dokumenty/" + jcbDokumenty.getSelectedItem().toString()); System.out.println(this.getCodeBase() + "Aplety/dokumenty/" + jcbDokumenty.getSelectedItem().toString()); System.out.println(typOkna); kontekst.showDocument(sciezka, typOkna); } catch(MalformedURLException e) {}

Przesyłanie danych pomiędzy apletami Z przesyłaniem danych pomiędzy apletami wiążą się następujące restrykcje.: Wiele przeglądarek wymaga, aby aplety pochodziły z tego samego serwera Wiele przeglądarek wymaga, aby aplety miały tą samą bazę kodową Java API wymaga, aby aplety były uruchomione na tej samej stronie w tym samym oknie przeglądarki

Przesyłanie danych pomiędzy apletami Znajdowanie apleta opiera się o sprawdzenie jego nazwy przy wykorzystaniu metody getApplet klasy AppletContext. Znalezienie apletu poprzez pobranie adresu jego obiektu jest jednoznaczne z możliwością wywoływania jego metod. Nazwę apletu podajemu w tagu <APPLET> jako atrybut NAME <APPLET codebase="classes" code="Aplety/PobieranieObrazkow.class" width=300 height=470 name="pobieranieObrazkow" >

Przesyłanie danych pomiędzy apletami - przykład this.showStatus("Zostaly przeslane dane!!!"); Applet aplet = getAppletContext().getApplet("odbiorca"); ((ApletPrzesylanieOdbiorca)aplet).ustawPrzeslaneDane(jtaDane.getText()); public void ustawPrzeslaneDane(String tekst) { jtaDane.setSelectedTextColor(java.awt.Color.RED); jtaDane.setText(tekst); Applet aplet = getAppletContext().getApplet("nadawca"); ((ApletPrzesylanieNadawca)aplet).ustawPrzeslaneDane("DZIĘKI ZA PRZESŁANIE DANYCH!!!"); }

Aplety wielowątkowe W związku z tym, że dla utworzenia apletu konieczne jest dziedziczenia po klasie Applet lub JApplet dla pisania apletów wielowątkowych wykorzystujemy interfejs Runnable. public class ApletWielowatkowy extends Applet implements Runnable

Aplety wielowątkowe - przykład Thread watek = new Thread(this); watek.start(); …. public void run() { while(true) { try { repaint(); Thread.currentThread().sleep(5000); dorysujTrzeci = true; dzwiek.play(); } catch(InterruptedException e){} }