 Czym jest JavaFX? oRich Internet Application oAtrakcyjny wizualnie, dynamiczny, multimedialny, jednoekranowy interfejs oAlternatywa dla Adobe Flash, Adobe Flex, Microsoft Silverlight oDeklaratywny język skryptowy.

Download Report

Transcript  Czym jest JavaFX? oRich Internet Application oAtrakcyjny wizualnie, dynamiczny, multimedialny, jednoekranowy interfejs oAlternatywa dla Adobe Flash, Adobe Flex, Microsoft Silverlight oDeklaratywny język skryptowy.


Czym jest JavaFX?
oRich Internet Application
oAtrakcyjny wizualnie, dynamiczny, multimedialny,
jednoekranowy interfejs
oAlternatywa dla Adobe Flash, Adobe Flex, Microsoft
Silverlight
oDeklaratywny język skryptowy
oTworzenie elementów graficznych i
animowanych
oDostęp do całego JavaAPI
o3 główne środowiska:
• komputery osobiste
• urządzenia przenośne
• telewizory
 Pakiet
JavaFX
◦ 3 główne części:
oJavaFX SDK
oNetBeans IDE
oJavaFX Production Suite
 Język
JavaFX
o Prosta struktura
o Język skryptowy
o Typowanie statystyczne
o 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 centerY, 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
o
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
}
KeyFrame {
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.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
},
Stop {
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();