Ilkka Koivistoinen 13.02.2002

Edellinen

11 Lopuksi

Lopuksi käsittelemme vielä muutamia kikkoja, joilla appletit saadaan vähällä työllä elävämmän oloisiksi.

showStatus()

Tällä metodilla voidaan selaimen statusriville kirjoittaa viesti, virheilmoitus, hyperlinkki tai mitä nyt sitten halutaankaan. Tällä saadaan myös toteutettua erilaisen statusrivillä pyörivät tekstit ja mainokset. Tässä esimerkki.

Esimerkki 81

Ohjelmalistaus näyttää tältä

import java.awt.*;
public class E81 extends java.applet.Applet{
  public void init(){
    setBackground(Color.lightGray);
  )
public boolean mouseEnter(Event evt, int x, int y){
   getAppletContext().showStatus("Tässä viesti appletilta E81");
   return true;
}

}

getAppletInfo()

Ylikirjoittamalla metodi getAppletInfo() seuraavasti (esimerkiksi)

public String getAppletInfo() {
  return " Ilkka Koivistoinen, Javaohjelmointi, WWW-julkaisu, 1999"
}

Esimerkki 81a

saadaan selaimen inforuutuun, jos sellainen on, esille teksiti sivun tekijästä jne.

Hyperlinkit appletin sisällä

Vaikka HTML itsessään sisältää tehokkaan tavan hakea hyperlinkkien avulla uusia sivuja, voidaan javaohjelmastakin ladata uusia sivuja.

Hyperlinkki muodostuu URL -luokan oliosta. Olio luodaan muodostimella

URL(String) Luo hyperlinkin, joka on kirjoitetu merkkijonona

URL(URL, String) Luo hyperlinkin, jonka perusosoite on URL ja sen alasivu  merkkijonona. Esimerkiksi

    baseUrl = new URL(http://solis.lappeenranta.fi);
    newUrl = new URL(baseUrl,"mittaukset");

URL(String, String, int, String) Luo hyperlinkin porttiin protokollalla String osoitteseen String, porttiin int ja siella alasivuun String

URL(String, String, String) Kuten edellä, mutta yhteys nyt HTML -porttiin 80

Hyperlinkin luominen edellyttää MalformedURLException -poikkeuksen käsittelyä

Esimerkki. Tehdään appletti, jolla painamalla painiketta SOLIS siirrytään Solis -projektin kotisivulle  Koodi on seuraavanlainen

import java.awt.*;
import java.net.*;
public class E82 extends java.applet.Applet{
  Button solis;
  URL solisUrl;
  public void init(){
    setBackground(Color.lightGray);
    solis = new Button("Solis Home Page");
    try {
      solisUrl = new URL("http://solis.Lappeenranta.fi");
    } catch(MalformedURLException e){}
    add(solis);
  }
  public boolean mouseEnter(Event evt, int x, int y){
    getAppletContext().showStatus("Lataa uusi sivu painikkeesta");
    return true;
  }
  public boolean action(Event evt, Object arg) {
    if (evt.target instanceof Button){
      String label = (String) arg;
      if (label.equals("Solis Home Page") ) // tässä toinen tapa testata painikkeen nimeä
        getAppletContext().showDocument(solisUrl);
      return true;
    } else return false;
  }
}

Tulos näyttää tältä Esimerkki 82

Lisäominaisuuksia

Lopetamme kurssin mainintaan, että on mahdollista tehdä applettien välille kommunikointia kun appletit ovat samalla HTML -sivulla tai RMI -arkitehtuurilla siten, että appletit ovat täysin eri puolilla verkkoa. Toteutus jääkööt lukijan omaksi iloksi.

Mainitaan vielä, että appletti ei voi käyttää turvallisuussyistä asikastietokoneen leikepöytää eikä leikekirjaa. Appletti voi luoda kuitenkin oman leikepöydän, jota voidaan käyttää tekstien siirtoon esimerkiksi tekstikenttien välillä.

 

Onnittelut - kurssin materiaali on nyt kahlattu läpi. Seuraavaksi aloitamme tietovirtojen (Streams) hallinnan  ja sovellusohjelmien opettelun seuraavalla kurssilla.

Ilkka Koivistoinen 13.02.2002

Edellinen