ITI0011-2014:JavaFX

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

Lingid

Scene Builderi allalaadimine lehelt: http://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-info-2157684.html

Väga hea tutorial: http://code.makery.ch/java/javafx-8-tutorial-intro/

Sama tutorial Java 7 kohta: http://code.makery.ch/java/javafx-2-tutorial-intro/ (seda peaks kasutama siis, kui Java versioon 8-t pole võimalik kasutada. Scene Builder'i saab endiselt ülal mainitud lingilt - tuleb arvatavasti vanem versioon võtta)

Oracle'i enda tutorial JavaFX kohta: http://docs.oracle.com/javase/8/javase-clienttechnologies.htm

JavaFX kasutamine Java versioon 1.7-ga

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: