Käynnistysparametreja sovellukselle
Esimerkkien JavaFx-sovellukset on tähän mennessä käynnistetty Application
-luokan perivän luokan sisällä olevasta pääohjelmametodista. Tarkastellaan tässä lyhyesti sovellusten käynnistämistä Application
-luokan ulkopuolelta. Oletetaan, että käytössämme on seuraava yksinkertainen JavaFx-sovellus.
package sovellus;
import javafx.application.Application;
import javafx.stage.Stage;
public class JavaFxSovellus extends Application {
@Override
public void start(Stage ikkuna) {
ikkuna.setTitle("Hei Maailma!");
ikkuna.show();
}
}
Sovelluksen voi käynnistää luokan ulkopuolelta toisesta luokasta Application
-luokan tarjoaman launch
-metodin avulla. Alla olevassa esimerkissä erillinen luokka Main
käynnistää sovelluksen.
package sovellus;
import javafx.application.Application;
public class Main {
public static void main(String[] args) {
Application.launch(JavaFxSovellus.class);
}
}
Kun yllä olevan luokan main
-metodi suoritetaan, käynnistyy JavaFxSovellus
-luokan määrittelemä käyttöliittymä.
Sovellukselle voi antaa myös käynnistyksenaikaisia parametreja osana launch
-metodia. Metodi launch
saa käynnistettävän luokan lisäksi rajattoman määrän merkkijonoja, joita voi käyttää osana käynnistystä. Nämä merkkijonot on saatavilla sovelluksen käynnistyksen yhteydessä getParameters
-metodikutsulla.
Metodi getParameters()
palauttaa Parameters-tyyppisen olion, jonka metodilla getNamed
saa käyttöönsä avain-arvo -pareja sisältävän hajautustaulun. Avain-arvo -parit annetaan launch-metodille muodossa --avain=arvo
. Alla olevassa esimerkissä otsikko muodostetaan kahdesta parametrista: organisaatio
ja kurssi
.
package sovellus;
import javafx.application.Application;
import javafx.application.Application.Parameters;
import javafx.stage.Stage;
public class JavaFxSovellus extends Application {
@Override
public void start(Stage ikkuna) {
Parameters params = getParameters();
String organisaatio = params.getNamed().get("organisaatio");
String kurssi = params.getNamed().get("kurssi");
ikkuna.setTitle(organisaatio + ": " + kurssi);
ikkuna.show();
}
}
Nyt sovelluksen käynnistäminen seuraavalla luokalla asettaa sovelluksen otsikoksi "Olipa kerran: Otsikko".
package sovellus;
import javafx.application.Application;
public class Main {
public static void main(String[] args) {
Application.launch(JavaFxSovellus.class,
"--organisaatio=Olipa kerran",
"--kurssi=Otsikko");
}
}
Parametreja käyttämällä ohjelmalle voisi kertoa esimerkiksi henkilöiden tallentamiseen ja lataamiseen käytetyn tiedoston nimen tai vaikkapa verkko-osoitteen.
Muistathan tarkistaa pistetilanteesi materiaalin oikeassa alareunassa olevasta pallosta!