Apleti

Apleti tečejo znotraj spletnih strani in jih običajno uporabljamo na internetu. Običajno nimajo metode main in torej niso aplikacije. So malce drugačni:

Naš prvi aplet

Pa naredimo aplet in ga pojasnimo. Z urejevalnikom napišimo naslednje:


import java.applet.Applet;
import java.awt.Graphics;
public class Pozdravljeni extends Applet
{
        // Metodo init uporabljamo za iniciacijo vseh spremenljivk in objektov 
        public void init()
        {
               // zaenkrat naj bo prazna
        }
        // metoda paint izriše vse potrebno na zslon
        public void paint(Graphics g)
        {
               g.drawString("Pozdravljeni vsi", 20, 20);
        }
}



To shranimo v datoteko Pozdravljeni.java in nato prevedemo. Pozor: javanske aplete moramo prevesti z originalnim prevajalnikom Java, torej na v oknu "DOS" na naslednji način::

javac  Pozdravljeni.java

Kako pa bomo vse pogledali? Napisati moramo HTML datoteko. Pa jo napišimo in jo imenujmo pozdravljeni.html :


<html>
<body>
<applet code=Pozdravljeni width=300 height=200>
</applet>
</body>
</html>

To, kar vključi naš aplet v html stran, je oznaka applet. Ime našega (prevedenega) apleta navedemo za besedico code. Atributi   height in width povedo, kako veliko bo "okno" z našim apletom, vgrajenim v HTML stran. 

Če sedaj odpremo tvorjeno hipertekstno stran, zagledamo na njej naš aplet.

Razlaga apleta

Pred spremembami kode apleta moramo spletno stran zapreti in jo kasneje spet odpreti..

Vrstico za vrstico bomo sedaj sprogramirani aplet razložili:.
import java.applet.Applet;

S tem smo "uvozili" originalni javanski razred Applet in ga tako lahko uporabimo.

import java.awt.Graphics;

S tem smo uvozili razred  Graphics. Rabili ga bomo za risanje črt, pravokotnikov, krogov in tudi samega teksta.

public class Pozdravljeni extends Applet

Na ta način razširimo oziroma prilagodimo uvoženi razred Applet v "naš" razred z imenom Pozdravljeni. Računalniško temu rečemo dedovnje razreda. Zato imamo na voljo dostop do vseh metod apleta, lahko pa dodajamo še svoje stvari: svoje spremenljivke in svoje metode.

public void init(){ }

Ta metoda je zaenkrat prazna (nima nič vrstic). V njej inicializiramo spremenljivke ali objekte, ki jih bomo kasneje uporabljali. To metodo MORAMO navesti, četudi je prazna.

public void paint(Graphics g){

Ta metoda predvideva risanje vsega, kar naj bi aplet postavil v svoje okence na zaslon. Opazimo, da smo metodi posredovali kot argument primerek (g) iz razreda Graphics. V naslednji vrstici bomo ugotovili, kako ta razred Graphics uporabljamo za risanje.

g.drawString("Pozdravljeni vsi", 20, 20);

Metoda drawString je podobna metodi, ki smo jo uporabljali v JUDO. To je metoda iz razreda Graphics. Imamo primerek iz razreda Graphics -  dali smo mu ime g.  Ta metoda nariše besedilo na položaju x,y. Katere druge metode bi še morale biti na voljo v razredu Graphics? Puskusi uporabiti znanje, ki smo ga pridobili z JUDO. Majhen namig:  drawRectangle ? fillCircle ? Poigraj se.
Kako pa nastavljamo barve? Kako smo to delali z JUDO? Enako je s pravo Javo. Kar poskusi.
Majhen namig:

g.setColor(Color.BLUE);
g.fillRect(0,0,100,200);

Kar dajmo se še malo poigrati z grafiko in razredom  Graphics v apletih. To je kar osnovno razumevanje.

Java barve

Barve za risanje izbiramo z javansko metodo setColor. TVnaprej so določene naslednje barve.

In kako to uporabimo?

:
g.setColor(Color.red);
g.setColor(Color.GREEN);
g.setColor(Color.yellow);

itd..

Lastne barve

Lahko tvorimo lastne barve. V ta namen moramo uporabiti konstruktor Color, ki kot parametre vzame komponente rdeče, zelene in modre barve. Splošno izgleda to tako: 

Color( nivoRdece, nivoZelene, nivoModre);

Trije nivoji so števila v območju med 0 in 255.  Nekaj primerov:

Color(255,0,0) je povsem rdeča ;
Color(0,255,0) je povsem zelena ;
Color(0,0,255) je povsem modra;
;

Primer tvorbe lastne barve in nato njene uporabe bi bil naslednji:

Color c = new Color(150, 250, 150);
g.setColor(c);

drawRect in fillRect

Podobno, kot smo imeli v JUDO metode za risanje, jih imamo tudi v pravi Javi. 

Nekaj vzorcev:

drawRect(x, y, sirina, visina);
fillRect(x, y , sirina, visina);

... in njihova uporaba:

g.drawRect(20 ,30 , 200, 100);
g.fillRect(50, 50, 150, 100);

Poskusimo naslednji aplet:


import java.applet.Applet;
import java.awt.*;
public class RisanjePravokotnikov extends Applet{
        // inicializacija
        public void init(){
        }
        // risanje
        public void paint(Graphics g){
               g.setColor(Color.red);
               g.fillRect(20,20,200,100);
               g.setColor(Color.yellow);
               g.drawRect(40, 40, 160, 60);
        }
}

Prevedimo ga.
In tvorimo ustrezno html datoteko, v kateri bo vgrajen:


<html>
<body>
<applet code=RisanjePravokotnikov width=300 height=200>
</applet>
</body>
</html>

Poglejmo, kaj smo dobili!


Poigrajmo se še malo z grafiko in z razredom Graphics!.