ITI0011:JavaFX

Allikas: Kursused
Redaktsioon seisuga 10. aprill 2015, kell 07:30 kasutajalt Ago (arutelu | kaastöö) (→‎Lingid)
Mine navigeerimisribale Mine otsikasti

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/

Vaikimisi installeeritakse Windowsis sellisesse kausta: C:\Users\[kasutaja]\AppData\Local\SceneBuilder\SceneBuilder.exe

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: