Ilkka Koivistoinen 13.02.2002 | |
Edellinen |
Lopuksi käsittelemme vielä muutamia kikkoja, joilla appletit saadaan vähällä työllä elävämmän oloisiksi.
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.
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;
}
}
Ylikirjoittamalla metodi getAppletInfo() seuraavasti (esimerkiksi)
public String getAppletInfo() {
return " Ilkka Koivistoinen, Javaohjelmointi, WWW-julkaisu, 1999"
}
saadaan selaimen inforuutuun, jos sellainen on, esille teksiti sivun tekijästä jne.
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 |
![]() |
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ä
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 |