Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie sieciowe w Javie Michał Kuciapski

Podobne prezentacje


Prezentacja na temat: "Programowanie sieciowe w Javie Michał Kuciapski"— Zapis prezentacji:

1 Programowanie sieciowe w Javie Michał Kuciapski

2 Metody sieciowe apletów

3 Klasy tworzenia apletu

4 4 z 27 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

5 Metody sieciowe apletów Cykl życia apletu

6 6 z 27 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)

7 7 z 27 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..."); }

8 8 z 27 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); }

9 Metody sieciowe apletów Pobieranie danych lokalizacji apletu

10 10 z 27 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

11 11 z 27 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); }

12 12 z 27 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); }

13 Metody sieciowe apletów Pobieranie i przesyłanie danych

14 14 z 27 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ą

15 15 z 27 Ł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()

16 16 z 27 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);

17 17 z 27 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); }

18 18 z 27 Ł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.

19 19 z 27 Ł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()

20 20 z 27 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; }}

21 21 z 27 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"

22 22 z 27 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) {}

23 23 z 27 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

24 24 z 27 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 jako atrybut NAME

25 25 z 27 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!!!"); }

26 26 z 27 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

27 27 z 27 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; repaint(); Thread.currentThread().sleep(5000); dzwiek.play(); } catch(InterruptedException e){} }


Pobierz ppt "Programowanie sieciowe w Javie Michał Kuciapski"

Podobne prezentacje


Reklamy Google