w10 java

w10 java, informatyka, Wykłady Java B.Pańczyk
[ Pobierz całość w formacie PDF ]
Aplet a aplikacja
JAVA - Tworzenie apletów

Aplikacje
są uruchamiane poprzez interpreter
języka Java (poleceniem
java
z wiersza poleceń –
narzędzie SDK)

Aplety
są uruchamiane w dowolnej przeglądarce
sieciowej obsługującej język Java (jeśli tylko
zainstalowane zostały plug-in do przeglądarek –
do ściągnięcia ze strony
odnośnikiem free download) lub za pomocą
polecenia
appletviewer
(narzędzie z SDK)
Beata Pańczyk - Java (Wykład 10)
1
2
Bezpiecze
ń
stwo apletów Java
Tworzenie apletów (1)
Aplet nie moŜe:
• odczytywać i zapisywać plików na
komputerze uŜytkownika
• komunikować się z inną witryną WWW niŜ
ta, z której został załadowany
• ładować i pobierać z komputera
uŜytkownika Ŝadnych programów
(aplikacji, bibliotek)
• aplety nie posiadają metody main(),
posiadają natomiast kilka róŜnych metod,
które są wywoływane na róŜnych etapach
wykonywania apletu
• wszystkie aplety są podklasami albo klasy
JApplet
z pakietu
javax.swing
albo
jej klasy bazowej
Applet
z pakietu
java
3
4
Tworzenie apletów (2)
Metody wykorzystywane w apletach
Podklasy apletu tworzone przez uŜytkownika
przyjmują postać:
publicclassmojApletextends
javax.swing.JApplet
{//kodźródłowyapletu
}
lub
publicclassmojApletextends
java.applet.Applet
{//kodźródłowyapletu
}
• init()
inicjalizacja
• start()
uruchamianie
• stop()
zatrzymywanie
• destroy()
destrukcja
• paint()
wyświetlanie
Uwaga!!!
powyŜsze metody domyślnie nic nie robią; aby
cokolwiek zostało wykonane naleŜy przesłonić je
nową wersją z odpowiednimi poleceniami
5
6
1
Metoda init()
• inicjalizacja apletu następuje w momencie jego
załadowania do przeglądarki sieciowej; moŜe
obejmować tworzenie obiektów, nadawanie
wartości początkowych, ładowanie rysunków lub
czcionek, ustawianie parametrów pracy
• aby prawidłowo zainicjalizować aplet naleŜy
przesłonić metodę
init()
następująco:
publicvoidinit()
{ //kodmetody
}
Metoda start()
• aplet jest uruchamiany po zakończeniu
inicjalizacji; uruchamianie moŜe zachodzić wiele
razy, inicjalizacja - tylko raz
• zadania do realizacji w momencie uruchamiania
mogą obejmować np. wysyłanie komunikatów itp.
• aby prawidłowo uruchomić aplet naleŜy
przesłonić metodę
start()
następująco:
publicvoidstart()
{ //kodmetody
}
7
8
Metoda stop()
• zatrzymywanie i uruchamianie apletu wzajemnie
się uzupełniają; zatrzymywanie następuje gdy
uŜytkownik opuszcza stronę lub kiedy aplet
zatrzymuje sam siebie jawnie wywołując metodę
stop() (domyślnie wątek uruchomiony przez aplet
kontynuuje pracę nawet, jeŜeli uŜytkownik opuścił
juŜ stronę z apletem; poprzez przesłonięcie
metody stop() moŜna zawiesić realizację takich
wątków i uruchomić je kiedy aplet ponownie staje
się widoczny
publicvoid stop()
{ //kodmetody
}
Metoda destroy()
• metoda destroy() pozwala apletowi na usunięcie
swoich danych roboczych zanim on sam zostanie
usunięty z pamięci lub zanim okno przeglądarki
zostanie zamknięte; metody moŜna uŜyć do
usunięcia dowolnego aktywnego wątku
uruchomionego przez aplet
publicvoid destroy()
{ //kodmetody
}
• w normalnej sytuacji rzadko stosuje się tę metodę,
gdyŜ java posiada automatyczny mechanizm
zwalniania zasobów pamięci
9
10
Metoda paint()
Przykład 1 - Aplet wy
ś
wietlaj
ą
cy godz. i dat
ę
• metoda pozwala na wyświetlanie w oknie apletu
róŜnych elementów (tekst, linie, tło, rysunki)
publicvoid paint(Graphics g)
{ //kodmetody
}
• metoda pobiera argument - obiekt klasy Graphics;
obiekt ten jest tworzony i przekazywany przez
samą przeglądarkę; dodatkowo naleŜy do kodu
apletu zaimportować klasę:
importjava.awt.Graphics;
//
lub
Wykorzystywane klasy i metody:
• GregorianCalendar
- klasa z pakietu
java.util
,
która reprezentuje wartości daty i czasu zgodnie z
układem kalendarza gregoriańskiego
• Font
- klasa z pakietu
java.awt
reprezentująca
rozmiar, styl i rodzaj wyświetlanej czcionki
• Color
oraz
Graphics2D
- klasy z pakietu
java.awt
• Metoda
sleep()
klasy
Thread
(wątek) generuje
wyjątek
InterruptedException
, który musi
zostać ujęty w blok poleceń
try catch
importjava.awt.*
11
12
2
Przykład 1 - kod
ź
ródłowy
Przykład 1 - kod
ź
ródłowy c.d.
Font typ=new Font("Monospaced",Font.BOLD,20);
ekran2D.setFont(typ); //ustawienia czcionki:
//obiekt przechowujacy biezaca date i czas:
GregorianCalendar dzien=new GregorianCalendar();
String czas=dzien.getTime().toString();
ekran2D.setColor(Color.black);
//na pozycji o wspolrzednych (5,25) wyswietlany jest ost_czas:
ekran2D.drawString(ost_czas,5,25);
ekran2D.setColor(kolor);
ekran2D.drawString(czas,5,25);
try { Thread.sleep(1000); // opoznienie o 1000ms (1s)
} catch(InterruptedException e) { /*nic nie rob*/ }
ost_czas=czas;
//przerysowanie okna apletu - ponowne wywolanie paint()
repaint(); }}
import java.awt.*;
import java.util.*;
/* Aplet zegar.class - wyswietla biezacy czas i date, co 1 s */
public class zegar extends javax.swing.JApplet
{ private Color kolor=new Color(255,204,102);//bursztynowy
private String ost_czas="";
public void init() {
//ustalamy kolor tla okna apletu:
setBackground(Color.black); }
public void paint(Graphics ekran) {
//obiekt Graphics2D przechowuje dane
//o aktualnych ustawieniach czcionek i kolorów
Graphics2D ekran2D=(Graphics2D)ekran;
13
14
Przykład 1 - wstawianie apletu na
stron
ę
WWW (plik .htm)
Przykład 1 - wynik działania
<html><body>
<appletcode="zegar.class"
height=50width=355>
Program wymaga przeglądarki obsługującej
aplety Java
</applet>
</body></html>
15
16
align
znacznika <Applet>
Wartości parametru:
• left
align
Inne parametry znacznika <Applet>
right
- ustawia okno apletu po lewej (prawej )
stronie następującego po nim tekstu (np.
align="right"
)
• texttop
right
• hspace
,
vspace
- ustawienie odstępu
(w pikselach) pomiędzy oknem apletu a
otaczającym go tekstem np. hspace=10
• code
,
codebase
texttop
- wyrównuje górną krawędź okna apletu z górną
krawędzią najwyŜszego znaku w wierszu
• top
baseline
) - wyrównuje górną
(dolną) krawędź okna apletu z górną (dolną) krawędzią
najwyŜszego (najniŜszego) elementu w wierszu
• absbottom
bottom
(lub
baseline
baseline
codebase
- uŜywane do
wskazania miejsca, w którym znajdują się
główna i pomocnicze klasy apletu Java np.
<appletcode="zegar.class"
codebase=
absbottom
- wyrównuje dół okna apletu z najniŜszym
elementem w wierszu
• absmiddle
absmiddle
- wyrównuje środek okna apletu ze
środkiem najwyŜszego elementu w wierszu
• middle
middle
- wyrównuje środek okna apletu ze środkiem linii
bazowej wiersza tekstu
17
18
3
Parametr
align
left
left
,
right
texttop
top
top
,
bottom
bottom
codebase
absbottom
absmiddle
middle
Uniwersalny znacznik <Object>
Pliki archiwum JAR

archiwum Java
- zbiór klas Java oraz innych plików
spakowanych do jednego pliku; ogranicza ilość
niezbędnych do załadowania i uruchomienia apletu
połączeń przeglądarki z serwerem WWW do jednego;
tworzone za pomocą narzędzia
jar
z SDK (bez kompresji
lub kompresja
.zip
)
• Parametry
jar
(samo jar podaje listę parametrów):
c
- utworzenie archiwum java
f
- kolejny parametr to nazwa tworzonego archiwum, np.
jarcfanimacje.jar*.class*.gif
jarcf arch.jarj1.class j1.auj2.au
• Wywołanie apletu z archiwum:
<appletcode="j1.class"archives="arch.jar"
width=45height=45>
• <object
classid="java:zegar.class"
codebase="klasyjava"
height=40width=400></object>
• Parametry znacznika
<object>:
codebase
,
height
,
width
,
align
jak
w znaczniku
<Applet>
19
20
Przekazywanie parametrów do apletu
Przykład 2 - modyfikacja apletu zegar,
przekazanie koloru tła jako parametru
• Parametry apletów przekazywane są w pliku HTML za
pomocą znacznika w bloku
<applet>…</applet>
:
<paramname="nazwa"value="wartość>
Np.:
<appletcode=zegar.class"width=100
height=50>
<paramname=fontvalue="TimesRoman">
<paramname=wysvalue="24">
Javaaplet</applet>
• Aplet moŜe odczytać parametry za pomocą metody
getParameter()
zwracającej łańcuch tekstu lub
null
(w przypadku braku parametrów)
import java.awt.*;
import java.util.*;
/* Aplet zegar1.class - modyfikacja zegar.class s */
public class zegar1 extends javax.swing.JApplet
{ private Color kolor=new Color(255,204,102);//bursztynowy
private String ost_czas="";
Color kolor1;
//wprowadzono nowy obiekt klasy Color
public void init()
{
String we=getParameter("tlo");
kolor1=Color.black;
if (we!=null) { try {kolor1=Color.decode(we);}
catch (NumberFormatException e)
{showStatus("Zly parametr:"+we);}}
setBackground(kolor1);
21
}
22
Przykład 2 - c.d.
Przykład 2 - plik HTML
public void paint(Graphics ekran)
{ Graphics2D ekran2D=(Graphics2D)ekran;
Font typ=new Font("Monospaced",Font.BOLD,20);
ekran2D.setFont(typ);
GregorianCalendar dzien=new GregorianCalendar();
String czas=dzien.getTime().toString();
ekran2D.setColor(kolor1);
ekran2D.drawString(ost_czas,5,25);
ekran2D.setColor(kolor);
ekran2D.drawString(czas,5,25);
try{ Thread.sleep(1000); } catch(InterruptedException e) { }
ost_czas=czas;
//przerysowanie okna apletu (ponowne wywolanie paint()
repaint(); }}
<html>
<body bgcolor="#
996633
">
<p> BieŜący czas:
<applet code="zegar1.class" height=50
width=355>
<param name="tlo" value="#996633">
Aplet Java
</applet>
</body></html>
23
24
4
[ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • diabelki.xlx.pl
  • Podobne
    Powered by wordpress | Theme: simpletex | © Spojrzeliśmy na siebie szukając słów, które nie istniały.