ITI0011:JavaFX
Lingid
Eclipse'is arendamiseks on mõistlik laadida alla e(fx)clipse plugin: http://www.eclipse.org/efxclipse/index.html
Scene Builderi allalaadimine lehelt: http://gluonhq.com/products/downloads/
Väga hea tutorial: http://code.makery.ch/java/javafx-8-tutorial-intro/
Oracle'i enda tutorial JavaFX kohta: http://docs.oracle.com/javase/8/javase-clienttechnologies.htm
JavaFX kasutamine Java versioon 1.7-ga
Kui vähegi võimalik, on soovitatav kasutada Java versiooni 8 (täpsemalt isegi 8.40). Kui mingil põhjusel pole see võimalik, siis see info töötas eelmisel aastal (pole läbi testitud). Infoks, et HW4 nõuab Java versioon 8-t.
TTÜ arvutiklassides on arvutitesse installeeritud Java versioon 1.7. Sellega vaikimisi JavaFX-i kaasas ei ole. Et kasutada JavaFX-i, tuleb teha järgmised sammud:
- kui projekt on loodud, siis projekti peal parem klikk - properties
- Java Build Path (seadete aknas vasakul valik)
- Libraries (tab)
- Add External JARs.. (nupp)
- otsite üles jfxrt.jar faili, mis tõenäoliselt asub java jrt (runtime) kataloogis, lib kausta all. Arvutiklassis näiteks: C:\Program Files\Java\jre7\lib\jfxrt.jar
Nüüd peaks JavaFX rakendus Java versiooniga 1.7 töötama.
Hello World
Lihtne "hello world" näide JavaFX-iga (saate testida, kas JavaFX sai seadistatud korrektselt). Testimiseks tehke uus Java projekt ja src kausta alla klass nimega HelloWorld ning kopeerige järgnev kood sellesse faili:
<source lang="java"> import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage;
public class HelloWorld extends Application {
public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Hello World!"); Button btn = new Button(); btn.setText("Say 'Hello World'"); btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); StackPane root = new StackPane(); root.getChildren().add(btn); primaryStage.setScene(new Scene(root, 300, 250)); primaryStage.show(); }
} </source>
Probleemid
Sellise seadistusega võib teil tekkida "Access restriction" probleem. Erinevatel inimestel on erinev lahendus töötanud. Vaadake näiteks neid lahendusi: