Czym jest JavaFX? Rich Internet Application Atrakcyjny wizualnie, dynamiczny, multimedialny, jednoekranowy interfejs Alternatywa dla Adobe Flash, Adobe Flex, Microsoft Silverlight Deklaratywny język skryptowy
Tworzenie elementów graficznych i animowanych Dostęp do całego JavaAPI 3 główne środowiska: komputery osobiste urządzenia przenośne telewizory
Pakiet JavaFX 3 główne części: JavaFX SDK NetBeans IDE JavaFX Production Suite
Język JavaFX Prosta struktura Język skryptowy Typowanie statystyczne Deklaratywny styl pisania
Typy zmiennych Boolean Integer Number String Duration Void
Struktura Programu import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.control.Label; Stage { width:500, height:300 title:"HelloWorld" scene: Scene { fill:Color.GREENYELLOW content: [ Label { layoutX:64, layoutY:64 font: Font { name:"Verdana" size:64 } text:"HelloWorld„}]}}
Operatory Arytmetyczne Przypisania Relacyjne Logiczne Jednoargumentowe
Funkcje Function – słowo kluczowe do definiowania funkcji. Void – stosujemy, gdy funkcja nie zwraca żadnej wartości. Przykład funkcji function myPrint(): Void { println("myPrint called"); }
Przykład funkcji nie zwracającej wyniku: 1) function wypisz_tekst(a: String, b: String): Void { println("{a}{b}"); } wypisz_tekst("alfa", "bet");
2) function wypisz_tekst(a, b){ println("{a}{b}"); } wypisz_tekst("alfa", "bet");
Funkcja, która zwraca wartość: function polacz_stringi(a: String, b: String): String { return "{a}{b}"; } var s = polacz_stringi("kogel", "mogel");
function polacz_stringi(a, b) { return "{a}{b}"; } var s = polacz_stringi("kogel", "mogel");
Klasa Shape wstawianie figur geometrycznych Podklasa klasy Node Właściwości obiektu: Fill Smooth Stroke strokeDashArray strokeDashOffset strokeWidth
Przykłady kształtów Circle służy do rysowania koła. Środek koła określają właściwości centerX oraz cen- terY, natomiast promień określa właściwość radius. Kolor konturu oraz wypełniania można zdefiniować we właściwościach stroke oraz fill. Circle { centerX: 50, centerY: 50 radius: 40 fill: Color.CORAL stroke: Color.BLUE }
Komponenty interfejsu użytkownika • Text Box – pole tekstowe, • Button – przycisk, • Hyperlink – hiperłącze, • ToggleButton – przycisk dwustanowy,
• RadioButton – pole przełączania opcji, • CheckBox – pole wyboru opcji, • ListView – lista wyboru, • Label – nieedytowalna etykieta tekstowa, • ScrollBar – obrzar przewijalny.
Animacje Zdefiniowanie animacji polega na uzależnieniu parametrów pozycji i orientacji od czasu def circle: Circle = Circle { centerX: 40 centerY: 70 radius: 25 fill: Color.SEAGREEN } Timeline { keyFrames: [ KeyFrame { time: 0s values: circle.translateX => 0.0 time: 3s values: circle.translateX => 165.0 tween Interpolator.LINEAR ] }.play();
Animacja koła - ruch w prawo po osi x.
package javafxaplikacja; import javafx. scene. Scene; import javafx package javafxaplikacja; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.scene.shape.Circle; import javafx.scene.paint.RadialGradient; import javafx.scene.paint.Color; import javafx.scene.paint.Stop; import javafx.animation.Timeline; var x=0; var y=0; Stage { title: „Animacja” scene: Scene { width: 300 height: 300 content: [ Circle { centerX: 50 centerY: 50 radius: 50 fill: RadialGradient{ centerX:80 centerY:50 radius: 90 proportional: false stops: [ Stop { offset: 0.0 color: Color.YELLOW }, offset: 1.0 color:Color.BLACK } ] translateX:bind x translateY:bind y }//koniec Circle var timeline = Timeline { repeatCount: 2.0 autoReverse:true keyFrames:[ at (1s) {x => 0; y => 0; at (3s) {x => 200; y => 200; }; timeline.play();