JavaFX-kirjasto

JavaFX on JavaAPI graafisten käyttöliittymien toteuttamiseen. Se tulee suoraan osana Java SE Runtime Environmentia (JRE) ja JDK:ta. JavaFX:n tutoriaali on hyödyllinen resurssi JavaFX-ohjelmia toteuttaessa.

NetBeansissa JavaFX-ohjelman saat toteutettua Maven-projektina New Project->Simple JavaFX Maven Archetype.

Yksinkertaisen JavaFX-projektin luominen NetBeansissa

Yksinkertaisen JavaFX-projektin luominen NetBeansissa

JavaFX-projektin pom.xml:stä kuuluu löytyä riippuvuus JavaFX:lle. Esimerkiksi:

<dependencies>
   <dependency>
      <groupId>org.openjfx</groupId>
      <artifactId>javafx-controls</artifactId>
      <version>17.0.1</version>
  </dependency>
</dependencies>

sekä plugin-määrittely JavaFX-Maven-pluginille. Esimerkiksi:

<plugins>
    <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>0.0.8</version>
        <configuration>
            <mainClass>package.MainClass</mainClass>
        </configuration>
    </plugin>
</plugins>

Määritelty MainClass sisältää JavaFX-ohjelman määrittelevän luokan. NetBeans populoi alustavan luokan valmiiksikin, mutta yksinkertaisin JavaFX-ohjelma on:

package example;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;


/**
* JavaFX App
*/
public class App extends Application {

    @Override
    public void start(Stage stage) {
        // Setting the main window with a title
        stage.setTitle("All the world's a stage");
        // Show the main window
        stage.show();
    }

    public static void main(String[] args) {
        launch( args );
    }

}

Lähdetään purkamaan ohjelman rakennetta ja katsomaan, mistä JavaFX-ohjelma oikeastaan koostuu. JavaFX-ohjelman pääluokka erikoistaa javafx.application.Application-luokkaa. Kun ohjelma käynnistyy, ohjelman suoritus etenee pääluokan tasolla seuraavasti:

  1. Määritellystä Application-luokasta luodaan olio.

  2. Kutsutaan olion init()-metodia, jonka tehtävä on alustaa ohjelman tarvitsema tila ennen suorituksen alkua, esim. luoda tarvittavia olioita.

  3. Kutsutaan olion start(Stage stage)-metodia, joka toimii ohjelman alkupisteenä. Metodi saa parametrinaan javafx.stage.Stage-olion, joka määrittelee ohjelman pääikkunan. show()-metodin kutsuminen stage:lle näyttää ikkunan ruudulla.

  4. Ohjelma jää kuuntelemaan tapahtumia. Pääluokka odottaa tässä kohtaa ohjelman sulkevaa tapahtumaa eli joko Platform.exit():n kutsua tai sitä, että kaikki ohjelman ikkunat on suljettu ja Platform:lle on määritelty implicitExit

  5. Kutsuu stop()-metodia

On tärkeää huomioida, että start() on Application:ssa abstrakti ja kuormitettava. init():lle ja stop():lle on tarjolla tyhjät toteutukset.

JavaFX-ohjemassa

Ohjelmamme ei vielä tee mitään. Lähdetään siis lisäämään toiminnallisuutta ikkunaan.