background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

1

Programowanie w Java 2

Programowanie w Java przy użyciu JDK

Opis JDK firmy SUN

Koncepcja tworzenia i wykonania programu

Prosty kod źródłowy programu

Kompilacja

Wykonanie na VM

Dokumentowanie, debugowanie, użycie innych narzędzi JDK

Co to jest appet

Koncepcja tworzenia i wykonania appletu

Prosty kod źródłowy appletu

Kompilacja

Wywołanie z dokumentu HTML

JDK appletviewer

Dla Specjalizacji Systemy Informacyjne w 

Gospodarce

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

2

Programowanie w Java przy 
użyciu JDK

SUN JDK

Java Developers Kit jest podstawowy zestawem do 

tworzenia aplikacji w Javie

Trochę prymitywny interfejs linii poleceń JDK jest 

zwykle zastępowany przez graficzny IDE (n.p. 

JBuilder, ForteforJava)

Na początku użyjemy JDK aby

Zaznajomić się z poszczególnymi krokami procesu 

przetwarzania kodu źródłowego i wykonywania 

programu na VM

Uniknąć konieczności analizowania bardziej  

skomplikowanego kodu Java niezbędnego dla 

najprostszej aplikacji generowanej w IDE

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

3

SUN JDK

Bezpłatnie dostępna implementacja Java VM, 
kompilatora, narzędzi, i bibliotek API 
(Application Programing Interface) dostępna 
dla wielu systemów i procesorów na stronach 
firmy SUN Microsystems

http://

www.sun.com

http://java.sun.com

Dostarczana jest także z JBuilder IDE

JBuilder5/jdk.1.3.1 i ta wersja jest zainstalowa na 
komputerach

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

4

Składniki JDK

Javac

Java

Appletviewer

Javadoc

Jdb

Javah

javap

Kompilator

Interpretator maszyny wirtualnej

Wykonuje bytecody z plików klas 
(.class)

Interpretator maszyny wirtualnej dla 
apletów

Wykonuje bytecody z plików klas 
zawartych w dokumentach HTML

Narzędzie do tworzenia dokumentacji 
w html z plików kodu

Debuger

Narzędzie do generowanie interfajsów 
umożliwiających wołanie procedur 
javy z kodu napisanego w C

Dissasembler – narzędzie pozwalające 
prezentować programiście znaczenie 
bytecodes (używane do znajdowania 
niektórych typów błędów)

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

5

Proces powstawania 
programu Java i 
wykonywania na VM

Kroki

Pisanie 
programu

Kompilacja

Wykonanie 
na Virtualnej 
Maszynie

Edytor Tekstu

Kod w Java

Text file (*.java)

javadoc

javac

Kod dla VM

Java class files (*.class)

java

Output

programu

javah

Plik (Header files)

nadłówka dla C/C++

Dokumentacja

HTML

Kompilacja

Pisanie

programu

Wykonanie

na Virtualnej

Maszynie

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

6

Najprostszy program

Kod w pliku 

TestDrive.java

/** Najprostszy Java program */
public class TestDrive {
  /* main jest główną funkcją programu */
  public static void main(String[] argv) {

System.out.println("JDK Test Drive!");
// Wyświetla tekst w terminalu

  }
}

Kompilacja

javac TestDrive.java

( pod windows „C:\Program Files\JBuilder6\jdk1.3.1\bin\javac” 

TestDrive.java )

lub
javac –verbose TestDrive.java

Rezultat

Kody dla java VM w pliku
TestDrive.class

Analogie i różnice z 

Pascalem

{ -> begin

} -> end

Typ zmienna -> zmienna: typ

Void oznacza funkcję nie 

zwracającą wyniku -> 

procedure w Pascalu

Static oznacza funkcję 

globalną

Main zastrzeżona nazwa 

funkcji od której rozpoczyna 

się program

String[] -> open array of 

string w Pascalu

Argv zawiera argumenty z linii 

poleceń

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

7

Wykonanie programu i 
działanie narzędzi

Wykonanie

java TestDrive

( pod windows „C:\Program Files\JBuilder6\jdk1.3.1\bin\java” –cp  

„C:\Moje dokumenty\Lectures\Java\Lecture2\example1;”  
TestDrive   

Opcjonalny średnik ; oddziela gdy więcej ścieżek )

lub
java –prof TestDrive

Dokumentacja

javadoc TestDrive.java

Przykład komentarzy w kodzie
/** dokumentacja */
// nie do dokumentacji
/* też nie do dokumentacji */

Inne

Javah TestDrive
Javap TestDrive

Java musi być w ścieżce lub 

należy podać n.p. 

c:/jdk1.3.1./java

Można też podać ścieżkę do 

pliku z bytecodes ale nie 

rozszerzenie .class

Javadoc generuje 

dokumentacje 

AllNames.html

Tree.html

Packages.html

TestDrive.html

....

Komentarze zaczynające się 

od /** są włączane do 

dokumentacji

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

8

Proces powstawania 
appletu Java i 
uruchamiania w 
przeglądarce

Kroki

Pisanie appletu

Kompilacja

Pisanie dokumentu HTML 

zawierającego odwołanie do 
appletu

Definiującego „okienko” dla 
appletu w oknie dokumentu

Wykonanie na Virtualnej 
Maszynie Przeglądarki 
WWW

Sam applet bez dokumentu 
można obejrzeć przy 
pomocy narzędzia 
appletviewer

Edytor Tekstu

Kod w Java

Text file (*.java)

javadoc

javac

Kod dla VM

Java class files (*.class)

Przegl

ą darka

 z

Java VM

HTML Dokument

z appletem

javah

Plik (Header files)

nadłówka dla C/C++

Dokumentacja

HTML

Kompilacja

Pisanie

programu

Edytor Tekstu

HTML

dokument

Text file (*.html)

appletviewer

Output

appletu

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

9

Wywołanie Appletu z 
dokumentu HTML

Java VM wbudowane w 
przeglądarki umożliwia  
automatyczne pobieranie z 
internetu specjalnych 
graficznych programów Java 
(appletów) i bezpieczne ich 
wykonywanie

Sposób Zapisu w kodzie HTML 
odwołań jest podobny do 
zapisu innych odwołań (links)

<A HREF=

http://java.sun.

com”> 

Link do strony Javy</A>

<APPLET CODE=„Clock.class” 
WIDTH=200 HEIGHT=100>Tu 
będzie Applet Zegarka</APPLET>

Dodatkowo Applety mogą 

pobierać z dokumentu HTML 

parametry określające  sposób 

działania appletu

<APPLET CODE=„Clock.class” 

WIDTH=200 HEIGHT=100>Tu 

będzie Applet Zegarka

<PARAM NAME=color 

VALUE=„blue”>

Wyświetl zegarek z niebieskim 

tłem</APPLET>

Przeglądarka z Java VM ignoruje 

wszystko inne niż <PARAM ...> 

pomiędzy znacznikami 

<APPLET...> ...a </Applet>

Przeglądarka bez Java VM ignoruje 

<APPLET..> i <PARAM ..> a 

wyświetla wszystko inne

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

10

Kroki związane z 
uruchomieniem Appletu

1.

Przeglądarka rezerwuje „okienko” w oknie dokumencie 

rozmiar podany przez parametry WIDTH i HEIGHT)

2.

Pobiera parametry z dokumentu HTML

Przetworzenie danych w <PARAM ...>

3.

Zostaje uruchomiona Java VM i applet zostaje pobrany z dysku lub z sieci

4.

Kod Appletu zostaje załadowany z pliku z rozszerzeniem .class, sprawdzony, i 
uruchomiony

5.

Procedura Appletu init zostaje wykonana (tylko raz)

6.

Procedura Appletu start zostaje wykonana

Procedura start zostaje wykonana przy każdym „powrocie” użytkownika d dokumentu 
HTML

7.

Wykonanie procedury paint powoduje wyświetlenie okna appletu

Procedura paint jest wywoływana  często n.p. Przy skrolowaniu okna

8.

Procedura stop jest wołana gdy użytkownik przechodzi do innego dokumentu

N.p. Powoduje zatrzymanie zegara w oknie appletu, zostaje on ponownie uruchomiony 
przez procedurę start

9.

Procedura destroy jest wykonywana gdy dokument zostaje zamknięty i Applet 
jest usuwany z pamięci

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

11

Różnice i podobieństwa 
Appletu i programu Java

Program

Grafika

opcja

Ładowanie

Wywołanie z linii komend lub 
skryptu

Z pliku lokalnego

 przez system operacyjny

Dane

Z linii komend

Wymagane składniki

Procedura main

Applet

Grafika

Wymagana

Ładowanie

Link w dokumencie HTML

Protokół Http

dysku lokalnego lub z internetu

Niezależne od systemu 

operacyjnego

Dane

Z parametrów zapisanych w 

dokumencie HTML 

Wymagane składniki

Procedura init

Start

paint

Stop

destroy

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

12

Prosty kod HTML 
„wywołujący” applet

HTML dokument

<HTML>
  <HEAD>
    <TITLE>Example of simple HTML document with applet 

link</TITLE>

  </HEAD>
  <BODY>
    <H1>Example of HTML document with applet</H1>
      <p>
      <APPLET CODE="FliledBox.class" WIDTH=200 

HEIGHT=100>

      <p>Here applet should be dispayed</p>
      <PARAM NAME=color VALUE="blue">
      <p>Applet color parameters can be "blue", "red" or, 

"green"</p>

      </APPLET>
  </BODY>
</HTML>

Opis elementów

<HTML> informacja o typie dokumentu

<HEAD> informacja o dokumencie dla 

przglądarki, wyszukiwarki, i.t.p.

<BODY> informacja do wyświetlenia

<H1>Tytuł głównej częsci

<p>akapit

<APPLET ... Początek sekcji appletu

<APPLET 

CODE=„http://www.server.com/d1/Applet

FileName.class”  definicja linku do 

appletu (może być plik lokalny, jeśli w tej 

samej kartotece co httml dokument to 

wystarczy nazwa pliku z appletem)

<APPLET 

CODE”LokalExamleApplet.class” 

WIDTH=100 HEIGHT=50>  zdefiniowanie 

rozmiarów „okienka” zarezerwowanego 

dla appletu w oknie dokumentu

<PARAM... >Sekcja definiująca 

parametry appletu

</APPLET> koniec sekcji appletu

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

13

Przykład prostego appletu

Kod appletu

import java.awt.*;
import java.applet.Applet;

/** FilledBox displays a filled, colored box in the browser window.
*/
public class FilledBox extends Applet {

    // This variable stores the color specified in the HTML document 
    Color boxColor;
   
    /** Get the box color from the host HTML file.
    */
    public void init() {

        String s;

        s = getParameter("color");

        // the default color is gray
        boxColor = Color.gray;

        // we expect a parameter called color which will have  
        // the value red, white or blue
        if (s.equals("red")) boxColor = Color.red;
        if (s.equals("green")) boxColor = Color.green;
        if (s.equals("blue")) boxColor = Color.blue;

    }

    /** Paint the box in region assigned to the applet.
        Use the color specified in the HTML document.
    */
    public void paint(Graphics g) {
        g.setColor(boxColor);
         g.fillRect(0, 0, size().width, size().height);
    }

}

Opis

Import ... 

Dołącza moduły do wyświetlenia grafiki 

odpowiednik instrukcji uses w Delphi

public class FilledBox extends Applet {

Definiuje klasę FilledBox jako dziedziczoną z 

klasy Applet (uniwersalnego wzorca appletu)

Color boxColor;

Zmienna typu Color

W Java typ piszemy przed nazwa zmiennej – 

odwrotnie niż w Pascalu

Public void init()

Procedura bez argumentów

Może być wołana przez wszystkich

Jest wołana tylko raz przez przeglądarkę po 

załadowaniu appletu

 public void paint(Graphics g) 

Procedura wołana przez przeglądarkę aby wyświetlić 

obrazek applety

Wołana wielokrotnie n.p. Podczas skrolowania 

dokumentu

Argumentem jest obiekt g typu Graphics zarządzający 

oknem dokumentu 

Metody obiektu typu Graphics użyte do wyświetlenia 

kolorowego prostokąta

       

 {  g.setColor(boxColor);

        

    g.fillRect(0, 0, size().width, size().height);

        

 }

{ begin, 

} end

background image

15/02/02

Programowanie Java 2  Copyri
ght Marek A. Chmielowski

14

Kompilacja appletu i 
dystrybucja

Applet kompilujemu tak jak każdy program n.p.

Javac FilledBoc.java

Wynikiem jest plik FilledBox.class

Uruchomienie Appletu wymaga dokumentu HTML 

określającego link do appletu, rozmiar „okienka” appletu, i 

ewentualnie definiującego parametry

Applet można uruchomić otwierając taki dokument w 

przeglądarce implementującej Java VM

Applet można „obejrzeć” przy pomocy narzędzia SDK 

appletviewer n.p.

appletviewer SimpleDocWithApplet.html

Jeśli chcemy „obejrzeć” sam applet to też musimy mieć HTML 

dokument (n.p. Po to aby zdefiniować „okienko”)

Appletviewer ignoruje dane html z dokumentu i wyświetla tylko 

applet


Document Outline