Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie sieciowe w Javie

Podobne prezentacje


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

1 Programowanie sieciowe w Javie
Michał Kuciapski

2 Metody sieciowe apletów

3 Metody sieciowe apletów
Klasy tworzenia apletu

4 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 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 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 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 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 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 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 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 Ł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 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 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 Ł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 Ł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 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 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 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 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 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" >

25 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 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 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){} }


Pobierz ppt "Programowanie sieciowe w Javie"

Podobne prezentacje


Reklamy Google