|
Część 4.1. Applety - wprowadzenie
Przypomnij sobie nasz pierwszy program, który pisaliśmy na początku tego kursu. Wyglądał on tak:
class PierwszyProgram
{ public static void main (String args[])
{ System.out.println("Mój pierwszy program");
}
}
Ten sam program zrobiony jako applet będzie natomiast miał taki wygląd:
import java.applet.Applet;
import java.awt.Graphics;
public class PierwszyApplet extends Applet
{ public void paint(Graphics g)
{ g.drawString("Mój pierwszy program", 50, 25);
}
}
Umieszczenie appletu na stronie WWW wymaga dodania znacznika <APPLET> . . . </APPLET>. Umieszczenie naszego appletu na stronie będzie wyglądało następująco:
<APPLET CODE="nazwa.class" WIDTH=x HEIGHT=y>
<PARAM NAME="NazwaParametru1" VALUE="WartośćParametru1">
.....
</APPLET>
gdzie znacznik <APPLET> posiada między innymi atrybuty:
Ponieważ nasz applet jest bardzo prosty i nie wymaga żadnych parametrów, to umieszczenie go na stronie będzie wyglądało następująco: <APPLET CODE="PierwszyApplet.class" WIDTH=150 HEIGHT=25></APPLET> A tak będzie wyglądał nasz applet wstawiony na stronę WWW: Każdy applet dziedziczy z klasy java.applet.Applet wymaga więc dołączenia tego pakietu do kompilowanego programu. Nasz applet zawsze będzie dziedziczył po klasie Applet z pakietu java.applet. Jeżeli dodatkowo chcemy cokolwiek w applecie pisać lub rysować, to musimy dołączyć pakiet java.awt.Graphics zawierający klasy umożliwiające rysowanie i pisanie w appletach. Jak widać nasz applet nie posiada metody main. Sterowanie appletem odbywa się zupełnie inaczej, niż standardową aplikacją (zobacz funkcje specjalne w appetach). Typowa struktura appletu napisanego w Javie wygląda ta:
import java.applet.*;
import java.awt.*;
public class NazwaAppletu extends Applet implements Runnable
{
... deklaracja zmiennych programu ...
public void init()
{ .....
// działania, które mają być wykonane podczas ładowania programu
.....
}
public void start()
{ .....
// działania wykonane przy każdorazowym uruchomieniu programu
.....
}
public void stop()
{ .....
// działania wykonane przy zatrzymaniu programu
.....
}
public void destory()
{ .....
// działania wykonane przy usuwaniu programu z pamięci
.....
}
public void paint(Graphics g)
{ .....
// wyświetlenie grafiki programu
.....
}
public void run()
{ .....
// opis działania wątku programu
.....
}
.....
własne metody programu
.....
}
Oczywiście - co widać w naszym applecie - nie wszystkie metody muszą wystąpić. Powyższa struktura opisuje pełne możliwości budowania appletów w Javie. W wieli przypadkach używamy tylko niektórych spośród specjalnych metod appletów, gdyż działanie metod dziedziczonych z klasy Applet jest w zupełności wystarczające. Na zakończenie tej części applet prezentujący użycie funkcji specjalnych oraz uwidaczniający czas życia programu. Przy przechodzeniu do innych okien i powrocie do bieżącego powinieneś zaobserwować zmianę wartości wyświetlanych zmiennych. Oto kod programu:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Font;
public class Cykl extends Applet
{ private int iInit, iStart, iStop, iDestroy, iPaint;
private Font font;
// klasa umożliwiająca definiowanie używanych w applecie czcionek
public void init()
{ font = new Font("Arial", Font.BOLD, 14);
iInit = dodajInfo(iInit);
}
public void start()
{ iStart = dodajInfo(iStart);
}
public void stop()
{ iStop = dodajInfo(iStop);
}
public void destroy()
{ iDestroy = dodajInfo(iDestroy);
}
int dodajInfo(int i)
{ repaint();
return ++i;
}
public void paint(Graphics g)
{ g.setFont(font);
// rysowanie ramki wokół appletu
g.drawRect(0, 0, size().width - 1, size().height - 1);
// wyświetlenie wartości wszystkich zmiennych appletu
g.drawString("Inicjalizacji", 10, 20); g.drawString(""+iInit, 200, 20);
g.drawString("Uruchomień", 10, 40); g.drawString(""+iStart, 200, 40);
g.drawString("Zatrzymań", 10, 60); g.drawString(""+iStop, 200, 60);
g.drawString("Usunięć", 10, 80); g.drawString(""+iDestroy, 200, 80);
g.drawString("Rysowań", 10,100); g.drawString(""+(++iPaint), 200, 100);
}
}
A oto i sam applet w działaniu: ![]()
|