1 / 70

JavaFX

JavaFX. Pär Sikö, Epsilon 2008-02-27. Trådning Animering Mer om språket Demo Framtiden Länkar Frågor. Vad är JavaFX JavaFX exempel Swing och JavaFX Språket Egna komponenter Bindning Operationer och funktioner Händelsehantering. Agenda. Trådning Animering Mer om språket Demo

selina
Télécharger la présentation

JavaFX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JavaFX Pär Sikö, Epsilon 2008-02-27

  2. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  3. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  4. Vad är JavaFX?

  5. F3, Chris Oliver JavaFX är en produktserie JavaFX Script JavaFX Mobile JavaFX TV Flash, Silverlight NetBeans, Eclipse Vad är JavaFX?

  6. JavaFX Script Java/Java2D/Swing • Ta bort 90% av alla semikolon • Skapa objekt: Frame{ title: ”Demo”} istället förJFrame frame = new JFrame( ”Demo” ); • Användheight: 400iställetförsetHeight(400); • Använder Event Dispatcher Thread

  7. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  8. package se.javaforum.demo1; import javafx.ui.*; Frame { content: Label { text: “Hello World” } width: 300 height: 200 visible: true }; JavaFX exempel

  9. package se.javaforum.demo1; import javafx.ui.*; Frame { content: Label { text: “Hello World” } background: black width: 300 height: 200 visible: true }; JavaFX exempel

  10. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  11. Snabbkurs i Swing

  12. Komponenter

  13. LayoutManager

  14. Layout exempel Frame { content: GridPanel { rows: 1 columns: 2 cells: [ Button{ text: “Next image” }, TextArea{ text: “Description” } ] } width: 300 height: 200 visible: true };

  15. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  16. var myVariable: Integer(?|*|+) = value; Fyra primitiva typer Integer Number String Boolean Exempel: var myInt: Integer = 1; var myInt = 1; var myIntArray: Integer* = [1, 2, 3]; var myIntArray = [1, 2, 3]; Variabler

  17. Variabler Använd { } för att infoga variabler och uttryck i text var buttonText: String = “Next Image“; Frame { content: GridPanel { rows: 1 columns: 2 cells: [ Button{ text: “Text: {buttonText}“ }, TextArea{ text: “Textfält” } ] } width: 300 height: 100 visible: true };

  18. Skapa en klass i JavaFX består av: Definiera klassen Implementera operationer och funktioner Initiera attribut Klasser och objekt

  19. Klasser och objekt class MyClass { // extends Class1, Class2 etc. attribute xPos: Integer; operation calculateYPos(x: Integer) : Integer; } attribute MyClass.xPos = 10; operation MyClass.calculateYPos(x: Integer) { return x*5; } MyClass { xPos: 5 }

  20. if och while syntaxen är som Javas. for använder samma syntax som sökning i arrayer. If, while, for for( i in [0..10] ) { System.out.println( ”i = { i } ” ); } for( i in [0..10] where i % 2 == 0 ) { System.out.println( ”i = { i } ” ); } for( i in [0..10], j in [0..10] ) { System.out.println( i * j ); }

  21. try - påminner om Javas try-satser men det går att kasta alla sorters objekt inte bara Throwable. throw – kan kasta vilket objekt som helst. try, catch och throw try { throw ”Hello World”; } catch( s: String ) { System.out.println( ”Fångade en sträng: {s}” ); } catch( any ) { System.out.println( ”Fångade något annat: {any}” ); }

  22. return fungerar precis som i Java. break och continue är som i Java men utan labels return, break och continue

  23. do – fungerar inte alls som i Java. do

  24. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  25. Ärv från CompositeNode för att implementera en egen grafisk komponent Implementera operationen composeNode() Egna komponenter ritas på en Canvas Gruppera objekt med Group Egna komponenter

  26. class ImageFrame extends CompositeNode { attribute frameColor: Color; attribute imageUrl: String; } operation ImageFrame.composeNode() { return Group { content: [ Rect { width: 300 height: 200 fill: frameColor }, ImageView { image: Image { url: imageUrl } } ] }; } Frame { content: Canvas { content: ImageFrame{ frameColor: white imageUrl: ”file:///c:/...” } } }

  27. Komponenter Egna komponenter bygger på:

  28. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  29. Bindning var x = 5; var y = bind 5*x // y == 25 x = 7; // x == 7 och y == 35 Ändra x Ändra y

  30. Bindning var labelText: String = ""; Frame { content: GridPanel { rows: 1 columns: 2 cells: [ Label{ text: bind labelText }, TextArea{ text: bind labelText} ] } width: 300 height: 100 visible: true };

  31. Bindning var url = ”file:///c:/.......jpg”; var description = ”Help the Beerless”; Frame { content: Canvas { content: [ ImageFrame { frameColor: white imageUrl: bind url }, View { content: TextArea { text: bind description } } ] } }

  32. Vad är JavaFX JavaFX exempel Swing och JavaFX Språket Egna komponenter Bindning Operationer och funktioner Händelsehantering Agenda • Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor

  33. operation motsvarar javas metoder function påminner om operation med undantagen: Får bara innehålla deklarationer och en return-sats Returvärded förändras kontinuerligt function påminner om en matematisk funktion operation och function function sum(m, n) { if( m > n ) { .... } var r = m + n; return r; }

  34. function sqr( x: Integer) : Integer { return x*x; } var a = 10; var b = sqr( a ); b == 100; // Sant a = 2; b == 4; // Sant eller falskt? operation och function

  35. function sqr( x: Integer) : Integer { return x*x; } var a = 10; var b = sqr( a ); b == 100; // Sant a = 2; b == 4; // Falskt, vi måste binda // variabeln till funktionen operation och function

  36. function sqr( x: Integer) : Integer { return x*x; } var a = 10; var b = bind sqr( a ); b == 100; // Sant a = 2; b == 4; // Sant operation och function

  37. En variabel eller attribut kan tilldelas en funktion eller en operation. Variabler - överkurs var f = function( a: Integer ) { return a*a; }; f(5) == 25; // Sant f(9) == 81; // Sant

  38. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  39. Klassen Button har ett attribut, ”action”, som ska tilldelas en operation eller en funktion Händelsehantering Button { text: ”Next image” action: operation() { url = ”file:///c:/images.....”; description = ”New text”; } }

  40. var clickCount = 0; Frame { content: Button { text: bind “Jag har tryckts {clickCount} gånger“ action: operation( ) { clickCount++; } } width: 300 height: 100 visible: true }; Händelsehantering

  41. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  42. Event Dispatcher Thread (EDT) Använd do för att exekvera kod utanför EDTn. Använd do laterför asynkron exekvering av kod på EDTn. Trådning

  43. operation loadImage( url: String) { var image: Image; do{ image: imageLoader.loadImage(url); } return image; } Trådning

  44. Trådning • Animering • Mer om språket • Demo • Framtiden • Länkar • Frågor • Vad är JavaFX • JavaFX exempel • Swing och JavaFX • Språket • Egna komponenter • Bindning • Operationer och funktioner • Händelsehantering Agenda

  45. Animering i JavaFX består av följande: Grafik och Swingkomponenter Tid Bindning Förändring Animering

  46. Animering – grafik och Swingkomponenter • Använd Canvas för att rita grafik. • Canvas består av en scengraf. • Gruppera objekt med hjälp av ’Group’. • En Canvas kan innehålla, förutom grafik, en/flera canvas samt Swingkomponenter.

  47. Animering – scengraf

  48. Animering – scenegraf transform: Rotate { angle: 45 }

  49. Animering – scenegraf transform: Rotate { angle: 45 }

More Related