4. Überblick - Was ist JavaFX?
„Rich Client Application“ Plattform
Adobe Flex und Microsoft Silverlight
5. Überblick - Was ist JavaFX?
„Rich Client Application“ Plattform
Adobe Flex und Microsoft Silverlight
Konzipiert für verschiedene Medien
Internet, Mobile, Desktop, TV
6. Überblick - Was ist JavaFX?
„Rich Client Application“ Plattform
Adobe Flex und Microsoft Silverlight
Konzipiert für verschiedene Medien
Internet, Mobile, Desktop, TV
Spezialisiert auf interaktive, multimediale Inhalte
Streaming, CSS-Styling, Effekte, Animationen
7. Überblick - Was ist JavaFX?
„Rich Client Application“ Plattform
Adobe Flex und Microsoft Silverlight
Konzipiert für verschiedene Medien
Internet, Mobile, Desktop, TV
Spezialisiert auf interaktive, multimediale Inhalte
Streaming, CSS-Styling, Effekte, Animationen
Einfache Erstellung von Benutzeroberflächen
Skripting für GUI - Javaobjekte verwenbar
9. Überblick - Features
Erweiterung der bewährten Java-Technolgie
> Verteilung über Applets und Java Webstart
> Zugriff auf bestehende Java-Klassen
10. Überblick - Features
Erweiterung der bewährten Java-Technolgie
> Verteilung über Applets und Java Webstart
> Zugriff auf bestehende Java-Klassen
Nutzung von Webtechnologien
> Einbindung von Medien via URLs
> Design über CSS steuerbar
11. Überblick - Features
Erweiterung der bewährten Java-Technolgie
> Verteilung über Applets und Java Webstart
> Zugriff auf bestehende Java-Klassen
Nutzung von Webtechnologien
> Einbindung von Medien via URLs
> Design über CSS steuerbar
FXScript für Benutzeroberfläche
> Scriptingsprache für GUI-Entwickler
> Deklaration der Elemente und Objekte
> Data-Binding und Variablen-Trigger
16. FXScript - Data-Binding - Trigger
var myStreet = "1 Main Street"; import javafx.stage.Stage;
var myCity = "Santa Clara"; ...
var myState = "CA"; import javafx.scene.input.MouseEvent;
var myZip = "95050";
var count = 0;
class Address { def images = for(i in [0..9]){Image {url: "{__DIR__}{i}.png"};}
var street: String; var currImg = images[count] on replace oldValue {
var city: String; if(count < 10){
var state: String; if (count == 9){println("Max count ({count}) reached.");}
var zip: String; } else {
} count = 9;
currImg = oldValue;
def address = Address { println("Done. The counter should look OK now.");
street: bind myStreet; }
city: myCity; };
state: myState;
zip: myZip; Stage {
}; scene: Scene {
content: ImageView {
println("address.street == {address.street}"); image: bind currImg
myStreet = "100 Maple Street"; onMouseClicked:
println("address.street == {address.street}"); function(e: MouseEvent) {
println("Click number {++count} ...");
currImg = images[count];
}
}
}
}
17. FXScript - Sequenzen
var days = ["Mon"]; seq[a..b]
def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
insert "Fri" into days; def weekend = days[5..6];
insert "Sat" into days;
insert "Sun" into days; seq[a..<b]
def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
insert "Thu" before days[2]; def weekdays = days[0..<5];
insert "wed" after days[1];
seq[a..]
delete "Sun" from days; def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
def weekend = days[5..];
delete days;
seq[a..<]
days = reverse days; def days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
def days2 = days[0..<];
var squares = for (i in [1..10]) i*i;
18. FXScript - Java-Klassen verwenden
/** Foo.java */ ...
public interface Foo { import javax.swing.JTree;
public abstract void doSomethingUseful(); import javafx.ext.swing.SwingComponent;
} import javafx.animation.transition.FadeTransition;
/** Fizzle.fx */ var tree = SwingComponent.wrap(new JTree());
public class Fizzle extends Foo { tree.translateY = 50;
override public function doSomethingUseful():Void { tree.height = 600;
myBankAcount.balance += 1000000 tree.width = 400;
}
} Stage {
title: "Add JTree"
/** Verwendung des Interfaces Foo in Java */ width: 200
void blah(Foo foo) { height: 400
if ( publicDebt < javafx.util.Math.pow(10, 12) ) scene: Scene {
foo.doSomethingUseful(); content : tree
} }
x: 10,
/** Verwendung der Klasse Fizzle in JavaFX */ y: 10
var fizzle = Fizzle {} }
fizzle.doSomethingUseful(); var fadeTransition = FadeTransition {
duration: 3s node: tree
fromValue: 1.0 toValue: 0.1
repeatCount:10 autoReverse: true
}
fadeTransition.play();
19. JavaFX 2.0 - Pläne
• Weiterführung der Plattform durch Oracle bestätigt
• Zentrale Technologie für „Rich Client Applications“
• Neue High-Performance Graphic-Engine
• Deployment wird weiter vereinfacht.
• Verwendung der neuen JVM-Sprachfeatures.
20. JavaFX 2.0 - Wichtigste Änderungen
• Weiterführung der Plattform durch Oracle bestätigt
• JavaFX-API wird für Java verfügbar gemacht.
• Verbesserung der Performance. (OpenGL, DirectX)
• Multimedia (Animationen, Media-Stream Events, ...)
• Weitere Controls (WebView, Dialoge, ...)
• WebEngine, WebSource für Ausgabe in HTML-DOM
Hinweis der Redaktion
\n
\n
\n
\n
\n
\n
\n
\n
\n
Das ist ein Test\nDiese Information wir auf dem iphone angezeigt und soll dort gelesen werden k&#xF6;nnen.\n