Grafika v appletoch


Aby applety mohli na obrazovku kresliť čiary alebo text, musia sprístupniť objekt Graphics pomocou metódy update alebo paint.
Metóda paint má ako parameter objekt Graphics: Public void paint(Graphics g)
   {
    //zobrazenie reťazca
    g.drawString (" AHOJ JAVA! ",5,10);
   }

Parametre 5, 10 určujú na ktorom mieste obrazovky bude umiestnený ľavý dolný roh reťazca "AHOJ JAVA!".

Posunutie počiatku súradnicovej sústavy do bodu(x,y):

   translate (int x, int y)  





Definovanie farieb



Aktuálna farba sa nastaví metódou setColor triedy Graphics.

Objekt Color má celkom 13 preddefinovaných farieb.
Tabuľka udáva mená pár z nich.

 Identifikátor farby

 Popis

  black   čierna
  blue  modrá
  cyan  svetlo modrá
  green  zelená
  magenta  svetlo purpurová
  pink  ružová


Nastavenie aktuálnej preddefinovanej farby:

public void paint (Graphics g)
   {
    g.setColor(Color.orange);
    d.drawString("Oranžová farba",10,10);
  }


Vytvárania vlastnej farby zadaním 3 hodnôt(Red, Green, Blue):

public void paint (Graphics g)
   {
      Color c = new Color(255, 0, 0);
      g.setColor(c);
      d.drawString("Červená farba",10,10);
  }

Tri čísla, pre definovanie farieb sú celé, v rozsahu 0 až 255.

Farby v applete: Zdrojový kód appletu:
  import java.applet.*;
 import java.awt.*;

  public class Farby extends Applet
{
  public void paint(Graphics g)
    {
    g.setColor(Color.yellow);
    g.drawString(" Zlta JAVA", 5, 30);
    g.setColor(Color.blue);
    g.drawString(" Modra JAVA", 5, 60);
    g.setColor(Color.green);
    g.drawString(" Zelena JAVA", 5, 90);
    g.setColor(Color.magenta);
    g.drawString(" Fialova JAVA", 5, 120);
    Color f = new Color (250, 0, 150);
    g.setColor(f);
    g.drawString(" Moja farba", 15, 150);
    }
  }




Čiary, obdĺžniky, ovály



Metódy pre kreslenie útvarov:

čiara

drawLine( int x1, int y1, int x2, int y2); (x1,y1) - súradnice 1.bodu, (x2,y2)-súradnice 2. bodu

obdĺžnik

drawRect(int x, int y, int sirka, int vyska);ľavý horný roh má súradnice (x,y)

vyplnený obdĺžnik

fillRect(int x, int y, int sirka, int vyska);ľavý horný roh má súradnice (x,y)

zaoblený obdĺžnik

drawRoundRect(int x, int y, int sirka, int vyska, int sirkaobluku, int vyskaobluku);ľavý horný roh má súradnice (x,y)

zaoblený vyplnený obdĺžnik

fillRoundRect(int x, int y, int sirka, int vyska, int sirkaobluku, int vyskaobluku);ľavý horný roh má súradnice (x,y)

ovál

drawOval (int x, int y, int sirka, int vyska);okraj oválu je na pozícii (x,y)

vyplnený ovál

fillOval (int x, int y, int sirka, int vyska);okraj oválu je na pozícii (x,y)


Grafické objekty v applete:

   tohto appletu


V applete je použitá metóda pre zmenu pozadia appletu setBackground.

Pozadie sa nastaví v inicializácii appletu:
public void init()
   {
    setBackground(Color.white)
   }


Niekedy je potrebné, aby farba pozadia appletu bola zhodná s farbou pozadia HTML dokumentu, v ktorom je applet uložený. Kedže HTML súbor a applet si vedia odovzdávať parametre, tak aktuálnu farbu pozadia HTML dokumentu je možné odovzdať appletu ako parameter v tagu:

< PARAM NAME="menoParametra" VALUE="hodnotaParametra">



Ako postupovať pri nastavení farby pozadia?
  1. Odovzdať appletu parameter, s hodnotou farby v modely RGB.
  2. V Jave vytvoriť zodpovedajúcu farbu pomocou konštruktora Color.
  3. Metódou setBackground nastaviť farbu pozadia.


Príklad tagu s parametrom pozadie<APPLET CODE=....class WIDTH=300 HEIGHT=100>
< PARAM NAME= pozadie VALUE="FFCFCF">
< /APPLET>


Príklad appletu, ktorý
preberá parameter pozadie
      public void init ()
        {
          String arg = getParameter("pozadie");
          int bgColorVal = Integer.valueOf(arg, 16).intValue();
         setBackground (new Color(bgColorVal));
        }






Zobrazenie obrázku


Načítanie sa robí metódou getImage v tvare:

Image getImage(URL cesta, String meno_obrazka)

Kreslenie obrázka sa robí metódou drawImage v tvare:

Boolean drawImage(Image meno_obrazka, int x, int y, ImageObserver observer)


Načítanie obrázka sa robí v inicializácii appletu:     public void init()



    Pre určenie miesta lokalizácie obrázka je vhodné použiť metódu getCodeBase, ktorá zistí umiestnenie serveru a adresára zodpovedajúceho súboru s appletom. Zisťuje to z tagu:


    < APPLET CODEBASE=" adresár, kde sa nachádza súbor s appletom " >.


    Parameter observer sa môže nahradiť ukazovateľom this. Objekt ImageObserver umožňuje kontrolovať stav nahrávania obrázku.

Applet s obrázkom: Zdrojový kód appletu:

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

   public class obrazok extends java.applet.Applet
    {
      Image obr;
     public void init ()
      {
      setBackground(Color.white);
      obr = getImage(getCodeBase(),"notrdam.gif");
      }
      public void paint( Graphics g)
      { g.drawImage(obr,20,20, this);
    }
  }