JavaFX8 - JumpStart - JUGCH. file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 1/128

Größe: px
Ab Seite anzeigen:

Download "9.10.2014 JavaFX8 - JumpStart - JUGCH. file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 1/128"

Transkript

1 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 1/128

2 Sven Ruppert speaking java since 1996 Principal IT Consultant Standort - 3/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 2/128

3 Twittert bitte ;-) Zeigt der Community das ihr aktiv seid!! Principal IT Consultant Standort 4/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 3/128

4 Sven Ruppert speaking java since 1996 Projekte aus den Bereichen: Automobilindustrie Energieversorgung Finanzen / Leasingbranche Luft - Raumfahrt / Satelliten Behörden / UN / Weltbank Wo? Europa Asien - Indien bis 5/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 4/128

5 folgendes erwartet uns: Intro Hello - World SceneBuilder - Demo FXML - was ist das denn? Swing und JavaFX afterburner.fx - Intro CDI bootstrap - Intro TestFX Beispiele DrillDownPieChart CrossLanguage Injection JavaFX on IOT JavaFX on ios JavaFX on 6/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 5/128

6 Intro Swing war gestern... heute ist JavaFX 7/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 6/128

7 Intro Swing war gestern... heute ist JavaFX ;-) Seit JavaFX ist JavaFX im JDK 8/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 7/128

8 Intro Swing war gestern... heute ist JavaFX ;-) Seit JavaFX ist JavaFX im JDK enthalten.. auch für JDK7 verfügbar, aber muss explizit eingebunden 9/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 8/128

9 Intro Swing war gestern... heute ist JavaFX ;-) Seit JavaFX ist JavaFX im JDK enthalten.. auch für JDK7 verfügbar, aber muss explizit eingebunden werden. Beachte: Der Wechsel von JavaFX 2.2 auf JavaFX8 bedeutet recht viel Arbeit, basierend auf dem was verwendet worden 10/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 9/128

10 Intro Swing war gestern... heute ist JavaFX ;-) Seit JavaFX ist JavaFX im JDK enthalten.. auch für JDK7 verfügbar, aber muss explizit eingebunden werden. Beachte: Der Wechsel von JavaFX 2.2 auf JavaFX8 bedeutet recht viel Arbeit, basierend auf dem was verwendet worden ist. z.b. Builder sind nun alle deprecated und Signaturen und Konstruktoren haben sich 11/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 10/128

11 Hello World Wie gehabt.. auch wir starten 12/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 11/128

12 Hello World Wie gehabt.. auch wir starten damit... Aufgabe: erzeuge einen Button, bei Verwendung das Event auf die KommandLine 13/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 12/128

13 Hello World public class JavaFXPlain extends Application { public static void main(string[] args) { launch(args); public void start(stage primarystage) { final AnchorPane rootnode = new AnchorPane(); final Button button = new Button(); button.settext("ohhh drück mich.."); button.setonaction(new EventHandler<ActionEvent>() public void handle(actionevent event) { System.out.println("event = " + event); } }); rootnode.getchildren().add(button); final Scene scene = new Scene(rootNode, 320, 240); primarystage.setscene(scene); primarystage.show(); } } 14/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 13/128

14 Hello World Application: Die Hauptklasse einer JavaFX Anwendung erbt von 15/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 14/128

15 Hello World Application: Die Hauptklasse einer JavaFX Anwendung erbt von javafx.application.application. Methode: start Die start() Methode ist er Haupt-Einstiegspunkt für eine JavaFX 16/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 15/128

16 Hello World Application: Die Hauptklasse einer JavaFX Anwendung erbt von javafx.application.application. Methode: start Die start() Methode ist er Haupt-Einstiegspunkt für eine JavaFX Anwendung. Stage: Die Instanz der Klasse Stage ist der TOP-Level Kontainer für alle JavaFX 17/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 16/128

17 Hello World Application: Die Hauptklasse einer JavaFX Anwendung erbt von javafx.application.application. Methode: start Die start() Methode ist er Haupt-Einstiegspunkt für eine JavaFX Anwendung. Stage: Die Instanz der Klasse Stage ist der TOP-Level Kontainer für die JavaFX Anwendung. Scene: Die Instanz der Klasse Scene ist der Kontainer für den gesamten 18/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 17/128

18 Hello World public class JavaFXPlain extends Application { public static void main(string[] args) { launch(args); public void start(stage primarystage) { final AnchorPane rootnode = new AnchorPane(); final Button button = new Button(); button.settext("ohhh drück mich.."); button.setonaction(new EventHandler<ActionEvent>() public void handle(actionevent event) { System.out.println("event = " + event); } }); rootnode.getchildren().add(button); final Scene scene = new Scene(rootNode, 320, 240); primarystage.setscene(scene); primarystage.show(); } } 19/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 18/128

19 Scenebuilder Der SceneBuilder ist ein Werkzeug von Oracle 20/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 19/128

20 Scenebuilder Der SceneBuilder ist ein Werkzeug von Oracle selbst... ermöglicht die visuelle Gestalltung von GUI 21/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 20/128

21 Scenebuilder Der SceneBuilder ist ein Werkzeug von Oracle selbst... ermöglicht die visuelle Gestalltung von GUI Elementen... kann jederzeit eine Preview starten 22/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 21/128

22 Scenebuilder Der SceneBuilder ist ein Werkzeug von Oracle selbst... ermöglicht die visuelle Gestalltung von GUI Elementen... kann jederzeit eine Preview starten (klickbar).. speichert das Ergebnis in einer Datei mit der Endung 23/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 22/128

23 Scenebuilder Der SceneBuilder ist ein Werkzeug von Oracle selbst... ermöglicht die visuelle Gestalltung von GUI Elementen... kann jederzeit eine Preview starten (klickbar).. speichert das Ergebnis in einer Datei mit der Endung fxml.. FXML ist die Beschreibung der Anordnungen 24/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 23/128

24 Scenebuilder Der SceneBuilder ist ein Werkzeug von Oracle selbst... ermöglicht die visuelle Gestalltung von GUI Elementen... kann jederzeit eine Preview starten (klickbar).. speichert das Ergebnis in einer Datei mit der Endung fxml.. FXML ist die Beschreibung der Anordnungen und.... CSS Anweisungen (das sollte besser nicht gemacht werden 25/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 24/128

25 Scenebuilder Beginnen wir mit der 26/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 25/128

26 Scenebuilder Beginnen wir mit der Applikation..... diese muss die FXML-Datei 27/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 26/128

27 Scenebuilder Beginnen wir mit der Applikation..... diese muss die FXML-Datei laden.. das passiert mit dem 28/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 27/128

28 Scenebuilder Beginnen wir mit der Applikation..... diese muss die FXML-Datei laden.. das passiert mit dem FXMLLoader.. und das Ergebnis ist die Instanz der in der FXML-Datei definierten Root- 29/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 28/128

29 Scenebuilder public class Main extends Application public void start(stage primarystage) throws Exception { URL resource = getclass().getresource("scenebuilderdemo.fxml"); FXMLLoader loader = new FXMLLoader(); loader.setlocation(resource); AnchorPane root = loader.load(); primarystage.setscene(new Scene(root, 300, 240)); primarystage.show(); } public static void main(string[] args) { launch(args); } } 30/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 29/128

30 Scenebuilder Nun sehen wir uns die FXML-Datei 31/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 30/128

31 Scenebuilder Nun sehen wir uns die FXML-Datei an... <?xml version="1.0" encoding="utf-8"?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> XML <AnchorPane maxheight="240.0" maxwidth="320.0" minheight="240.0" minwidth="320.0" prefheight="240.0" prefwidth="320.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.rapidpm.course.javafx.jumpstart.step002.scenebuilderdemocontroller"> <children> <Button fx:id="button" mnemonicparsing="false" onaction="#onbuttonclicked" text="bitte drücke mich..."/> </children> 32/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 31/128

32 Scenebuilder fx:controller.. Definition welcher Controller verwendet werden 33/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 32/128

33 Scenebuilder fx:controller.. Definition welcher Controller verwendet werden soll.. Der Controller muss einen Default Constructor 34/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 33/128

34 Scenebuilder fx:controller.. Definition welcher Controller verwendet werden soll.. Der Controller muss einen Default Constructor haben.. jede Komponente kann seinen eigenen Controller bekommen (später 35/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 34/128

35 Scenebuilder fx:controller.. Definition welcher Controller verwendet werden soll.. Der Controller muss einen Default Constructor haben.. jede Komponente kann seinen eigenen Controller bekommen (später mehr) 36/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 35/128

36 Scenebuilder fx:controller.. Definition welcher Controller verwendet werden soll.. Der Controller muss einen Default Constructor haben.. jede Komponente kann seinen eigenen Controller bekommen (später mehr) onaction="#onbuttonclicked".. Name der Methode die aufgerufen werden 37/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 36/128

37 Scenebuilder fx:controller.. Definition welcher Controller verwendet werden soll.. Der Controller muss einen Default Constructor haben.. jede Komponente kann seinen eigenen Controller bekommen (später mehr) onaction="#onbuttonclicked".. Name der Methode die aufgerufen werden soll.. beachte # vor dem Namen, sonst kein 38/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 37/128

38 Scenebuilder public class SceneBuilderDemoController { public void onbuttonclicked(actionevent actionevent){ System.out.println("actionEvent = " + actionevent); } } 39/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 38/128

39 Scenebuilder public class SceneBuilderDemoController { public void onbuttonclicked(actionevent actionevent){ System.out.println("actionEvent = " + actionevent); } } JAVA Der Controller ist selber zu 40/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 39/128

40 Scenebuilder JSR 223-compatible scripting 41/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 40/128

41 Scenebuilder JSR 223-compatible scripting engine.. Hiermit können wir die Controller in z.b. folgenden Sprachen 42/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 41/128

42 Scenebuilder JSR 223-compatible scripting engine.. Hiermit können wir die Controller in z.b. folgenden Sprachen schreiben.... JavaScript, Groovy, Jython, 43/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 42/128

43 Scenebuilder JSR 223-compatible scripting engine.. Hiermit können wir die Controller in z.b. folgenden Sprachen schreiben.... JavaScript, Groovy, Jython, Clojure Beispiel anhand von 44/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 43/128

44 Scenebuilder Beispiel anhand von JavaScript 1) die fx:controller Anweisung aus der fxml-datei 45/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 44/128

45 Scenebuilder Beispiel anhand von JavaScript 1) die fx:controller Anweisung aus der fxml-datei entfernen 2) die verwendete Sprache in der fxml-datei definieren, hier <?language 46/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 45/128

46 Scenebuilder Beispiel anhand von JavaScript 1) die fx:controller Anweisung aus der fxml-datei entfernen 2) die verwendete Sprache in der fxml-datei definieren, hier <?language javascript?> 3) Action-Methodennamen ändern (sprachabhängig) -> 47/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 46/128

47 Scenebuilder Beispiel anhand von JavaScript 1) die fx:controller Anweisung aus der fxml-datei entfernen 2) die verwendete Sprache in der fxml-datei definieren, hier <?language javascript?> 3) Action-Methodennamen ändern (sprachabhängig) -> onaction="onbuttonclicked(event);" 4a) Definition der Methode in der Sprache innerhalb der 48/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 47/128

48 Scenebuilder Beispiel anhand von JavaScript 1) die fx:controller Anweisung aus der fxml-datei entfernen 2) die verwendete Sprache in der fxml-datei definieren, hier <?language javascript?> 3) Action-Methodennamen ändern (sprachabhängig) -> onaction="onbuttonclicked(event);" 4a) Definition der Methode inder Sprache innerhalb der FXML-Datei 4b) Definition der Methode inder Sprache in einer externen datei, incl 49/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 48/128

49 Scenebuilder <?xml version="1.0" encoding="utf-8"?> <?language javascript?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> XML <AnchorPane maxheight="240.0" maxwidth="320.0" minheight="240.0" minwidth="320.0" prefheight="240.0" prefwidth="320.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> <fx:script> function onbuttonclicked() { buttonid.settext("calling the JavaScript"); } </fx:script> <!--<fx:script source="fxml_example.js"/>--> <children> <Button fx:id="buttonid" mnemonicparsing="false" onaction="onbuttonclicked(event);" text="bitte drücke mich..."/> </children> 50/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 49/128

50 FXML Mit FXML kann man die Anordnung/Komposition der GUI Elemente und die Logik voneinander 51/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 50/128

51 FXML Mit FXML kann man die Anordnung/Komposition der GUI Elemente und die Logik voneinander trennen Wie sollte ich da 52/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 51/128

52 FXML Mit FXML kann man die Anordnung/Komposition der GUI Elemente und die Logik voneinander trennen Wie sollte ich da vorgehen? Wie feingranular wird diese Trennung in Komponenten 53/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 52/128

53 FXML Mit FXML kann man die Anordnung/Komposition der GUI Elemente und die Logik voneinander trennen Wie sollte ich da vorgehen? Wie feingranular wird diese Trennung in Komponenten gemacht? Wann verwende ich FXML, wann besser 54/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 53/128

54 FXML - Wie sollte ich da vorgehen? Bei der Verwendung von FXML gibt es prinzipiell immer 3 55/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 54/128

55 FXML - Wie sollte ich da vorgehen? Bei der Verwendung von FXML gibt es prinzipiell immer 3 Komponenten... fxml Datei: Hier werden die Komponenten 56/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 55/128

56 FXML - Wie sollte ich da vorgehen? Bei der Verwendung von FXML gibt es prinzipiell immer 3 Komponenten... fxml Datei: Hier werden die Komponenten positioniert... Controller Klasse: Abbildung der Logik bzw Interaktion der GUI 57/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 56/128

57 FXML - Wie sollte ich da vorgehen? Bei der Verwendung von FXML gibt es prinzipiell immer 3 Komponenten... fxml Datei: Hier werden die Komponenten positioniert... Controller Klasse: Abbildung der Logik bzw Interaktion der GUI Elemente... CSS: Anpassungen der GUI Elemente ( Farben / Formen / Größen..) - noch nicht 58/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 57/128

58 FXML - Wie sollte ich da vorgehen? Bei der Verwendung von FXML gibt es prinzipiell immer 3 Komponenten... fxml Datei: Hier werden die Komponenten positioniert... Controller Klasse: Abbildung der Logik bzw Interaktion der GUI Elemente... CSS: Anpassungen der GUI Elemente ( Farben / Formen / Größen..) - noch nicht gezeigt nette Theorie... Wir wollen ein 59/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 58/128

59 FXML - Wie sollte ich da vorgehen? Beginnen wir mit der Hpt-Ansicht: 60/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 59/128

60 FXML - Wie sollte ich da vorgehen? Beginnen wir mit der Hpt-Ansicht: MainPane.fxml <?import javafx.scene.layout.vbox?> <?import javafx.scene.control.label?> <?import javafx.scene.control.button?> <?import org.rapidpm.course.javafx.jumpstart.step003.sample.main.edit.editpane?> XML <fx:root type="org.rapidpm.course.javafx.jumpstart.step003.sample.main.mainpane" fx:controller="org.rapidpm.course.javafx.jumpstart.step003.sample.main.mainpanecontroller" xmlns:fx="http://javafx.com/fxml" > <VBox> <Label fx:id="lb" text="hello World"/> <Button fx:id="btn" onaction="#ondosomething" text="und los geht es"/> <EditPane fx:id="editpane"/> </VBox> 61/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 60/128

61 FXML - Wie sollte ich da vorgehen? Beginnen wir mit der Hpt-Ansicht: MainPane.fxml.. Hier werden Std.Komponenten und eine eigene Komponente 62/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 61/128

62 FXML - Wie sollte ich da vorgehen? Beginnen wir mit der Hpt-Ansicht: MainPane.fxml.. Hier werden Std.Komponenten und eine eigene Komponente positioniert... Der Controller für die Hpt.-Ansicht wird 63/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 62/128

63 FXML - Wie sollte ich da vorgehen? Der MainPaneController public class MainPaneController Button EditPane editpane; public MainPaneController() { System.out.println("MainPaneController = OK" ); } public void ondosomething(actionevent actionevent){ System.out.println("actionEvent = " + actionevent); btn.settext(instant.now()+""); editpane.setlabeltext(); //label v Edit veraendern } } 64/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 63/128

64 FXML - Wie sollte ich da vorgehen? Der MainPaneController..was bedeuten die Attribute annotiert public class MainPaneController Button EditPane editpane; public MainPaneController() { System.out.println("MainPaneController = OK" ); } public void ondosomething(actionevent actionevent){ System.out.println("actionEvent = " + actionevent); btn.settext(instant.now()+""); editpane.setlabeltext(); //label v Edit veraendern } } 65/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 64/128

65 FXML - Wie sollte ich da vorgehen? Der MainPaneController..was bedeuten die Attribute annotiert BEACHTE! Hier existiert ein 66/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 65/128

66 FXML - Wie sollte ich da vorgehen? Der MainPaneController..was bedeuten die Attribute annotiert BEACHTE! Hier existiert ein Lebenszyklus. Bei der Kombination mit anderen Technologien wird das 67/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 66/128

67 FXML - Wie sollte ich da vorgehen? Der MainPaneController..was bedeuten die Attribute annotiert BEACHTE! Hier existiert ein Lebenszyklus. Bei der Kombination mit anderen Technologien wird das wichtig!! Was fehlt 68/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 67/128

68 FXML - Wie sollte ich da vorgehen? Zur Erinnerung: MainPane.fxml <?import javafx.scene.layout.vbox?> <?import javafx.scene.control.label?> <?import javafx.scene.control.button?> <?import org.rapidpm.course.javafx.jumpstart.step003.sample.main.edit.editpane?> XML <fx:root type="org.rapidpm.course.javafx.jumpstart.step003.sample.main.mainpane" fx:controller="org.rapidpm.course.javafx.jumpstart.step003.sample.main.mainpanecontroller" xmlns:fx="http://javafx.com/fxml" > <VBox> <Label fx:id="lb" text="hello World"/> <Button fx:id="btn" onaction="#ondosomething" text="und los geht es"/> <EditPane fx:id="editpane"/> </VBox> 69/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 68/128

69 FXML - Wie sollte ich da vorgehen? Der MainPaneController..was bedeuten die Attribute annotiert BEACHTE! Hier existiert ein Lebenszyklus. Bei der Kombination mit anderen Technologien wird das wichtig!! Was fehlt noch? Die Definition der eigenen Komponente: 70/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 69/128

70 FXML - Wie sollte ich da vorgehen? Die Klasse: MainPane public class MainPane extends AnchorPane { public MainPane(){ URL resource = getclass().getresource("mainpane.fxml"); FXMLLoader loader = new FXMLLoader(resource); loader.setroot(this); try { loader.load(); } catch (IOException e) { e.printstacktrace(); } AnchorPane.setBottomAnchor(this, 0.0); AnchorPane.setTopAnchor(this, 0.0); AnchorPane.setLeftAnchor(this, 0.0); AnchorPane.setRightAnchor(this, 0.0); } } 71/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 70/128

71 FXML - Wie sollte ich da vorgehen? Nun haben wir unsere erste 72/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 71/128

72 FXML - Wie sollte ich da vorgehen? Nun haben wir unsere erste Komponente. Wir arbeiten mit 73/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 72/128

73 FXML - Wie sollte ich da vorgehen? Nun haben wir unsere erste Komponente. Wir arbeiten mit Namenskonventionen. GUI-Komponente: 74/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 73/128

74 FXML - Wie sollte ich da vorgehen? Nun haben wir unsere erste Komponente. Wir arbeiten mit Namenskonventionen. GUI-Komponente: MainPane FXML-Datei: 75/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 74/128

75 FXML - Wie sollte ich da vorgehen? Nun haben wir unsere erste Komponente. Wir arbeiten mit Namenskonventionen. GUI-Komponente: MainPane FXML-Datei: MainPane.fxml Controller: 76/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 75/128

76 FXML - Wie sollte ich da vorgehen? Nun haben wir unsere erste Komponente. Wir arbeiten mit Namenskonventionen. GUI-Komponente: MainPane FXML-Datei: MainPane.fxml Controller: MainPaneController So werden alle Komponenten 77/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 76/128

77 FXML - Wie sollte ich da vorgehen? Nun haben wir unsere erste Komponente. Wir arbeiten mit Namenskonventionen. GUI-Komponente: MainPane FXML-Datei: MainPane.fxml Controller: MainPaneController So werden alle Komponenten aufgebaut!.. 78/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 77/128

78 FXML - Wie sollte ich da vorgehen? EditPane, besteht 79/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 78/128

79 FXML - Wie sollte ich da vorgehen? EditPane, besteht aus... GUI-Komponente: 80/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 79/128

80 FXML - Wie sollte ich da vorgehen? EditPane, besteht aus... GUI-Komponente: EditPane FXML-Datei: 81/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 80/128

81 FXML - Wie sollte ich da vorgehen? EditPane, besteht aus... GUI-Komponente: EditPane FXML-Datei: EditPane.fxml Controller: 82/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 81/128

82 FXML - Wie sollte ich da vorgehen? EditPane, besteht aus... GUI-Komponente: EditPane FXML-Datei: EditPane.fxml Controller: EditPaneController Aber wo kommt die Geschäftslogik 83/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 82/128

83 FXML - Wie sollte ich da vorgehen? EditPane, besteht aus... GUI-Komponente: EditPane FXML-Datei: EditPane.fxml Controller: EditPaneController Aber wo kommt die Geschäftslogik hin? NEIN! nicht in den Controller 84/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 83/128

84 FXML - Wie sollte ich da vorgehen? Die zu verwendende Geschäftslogik - Klasse 85/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 84/128

85 FXML - Wie sollte ich da vorgehen? Die zu verwendende Geschäftslogik - Klasse Service public class Service { public String calculate(){ return Instant.now().toString(); } } 86/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 85/128

86 FXML - Wie sollte ich da vorgehen? Die zu verwendende Geschäftslogik - Klasse Service public class Service { public String calculate(){ return Instant.now().toString(); } } JAVA Hierbei handelt es sich um ein 87/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 86/128

87 FXML - Wie sollte ich da vorgehen? Die zu verwendende Geschäftslogik - Klasse Service public class Service { public String calculate(){ return Instant.now().toString(); } } JAVA Hierbei handelt es sich um ein POJO Diese soll im Controller verwendet 88/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 87/128

88 FXML - Wie sollte ich da vorgehen? EditController: public class EditPaneController { private Service service = new Service(); Button btn; Label lb; public void ondosomething(actionevent actionevent){ System.out.println("actionEvent = " + actionevent); btn.settext(service.calculate()); } public void useservice(){ //Holder Komponente triggert Kind lb.settext(service.calculate()); } } 89/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 88/128

89 FXML - Wie sollte ich da vorgehen? EditController: public class EditPaneController { private Service service = new Service(); //.. snipp public void ondosomething(actionevent actionevent){ btn.settext(service.calculate()); } //.. snipp } JAVA Hier wird der Service noch statisch verwendet.. -> 90/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 89/128

90 FXML - Wie sollte ich da vorgehen? Refactoring 91/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 90/128

91 FXML - Wie sollte ich da vorgehen? Refactoring :.. Main bleibt wie 92/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 91/128

92 FXML - Wie sollte ich da vorgehen? Refactoring :.. Main bleibt wie gehabt... public class Main extends Application public void start(stage primarystage) throws Exception { MainPane root = new MainPane(); primarystage.settitle("hello World"); primarystage.setscene(new Scene(root, 300, 275)); primarystage.show(); } public static void main(string[] args) { launch(args); } } 93/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 92/128

93 FXML - Wie sollte ich da vorgehen? Refactoring :.. gemeinsame GUI-Teile werden in ein BasePane verschoben.. public abstract class BasePane<T> extends AnchorPane { public T controller; private void init() { AnchorPane.setBottomAnchor(this, 0.0); AnchorPane.setTopAnchor(this,0.0); AnchorPane.setLeftAnchor(this,0.0); AnchorPane.setRightAnchor(this,0.0); URL resource = getclass().getresource(getfxmlname()+".fxml"); FXMLLoader loader = new FXMLLoader(resource); loader.setroot(this); try { loader.load(); controller = loader.getcontroller(); } catch (IOException e) {e.printstacktrace(); } } public abstract String getfxmlname(); public BasePane(Node... children) { super(children); init(); } public BasePane() { init(); } } 94/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 93/128

94 FXML - Wie sollte ich da vorgehen? Refactoring :.. gemeinsame GUI-Teile werden in ein BasePane verschoben.... dadurch reduzieren sich die GUI-Komponenten.. public class MainPane extends BasePane<MainPaneController> public String getfxmlname() { return MainPane.class.getSimpleName(); } } JAVA public class EditPane extends BasePane<EditPaneController> public String getfxmlname() { return EditPane.class.getSimpleName(); } public void setlabeltext(){ controller.useservice(); } } 95/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 94/128

95 FXML DONE - Wie sollte ich da vorgehen? Wie feingranular wird diese Trennung in Komponenten gemacht? Wann verwende ich FXML, wann besser 96/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 95/128

96 FXML DONE - Wie sollte ich da vorgehen? Wie feingranular wird diese Trennung in Komponenten gemacht?.. Alles was zu einem Segment auf dem Screen zusammen gefasst werden 97/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 96/128

97 FXML DONE - Wie sollte ich da vorgehen? Wie feingranular wird diese Trennung in Komponenten gemacht?.. Alles was zu einem Segment auf dem Screen zusammen gefasst werden kann... Immer wenn es wiederkehrende Teile 98/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 97/128

98 FXML DONE - Wie sollte ich da vorgehen? Wie feingranular wird diese Trennung in Komponenten gemacht?.. Alles was zu einem Segment auf dem Screen zusammen gefasst werden kann... Immer wenn es wiederkehrende Teile sind 99/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 98/128

99 FXML DONE - Wie sollte ich da vorgehen? Wie feingranular wird diese Trennung in Komponenten gemacht?.. Alles was zu einem Segment auf dem Screen zusammen gefasst werden kann... Immer wenn es wiederkehrende Teile sind Aber!!.. Die Verwendung von fxml kostet Zeit und 100/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 99/128

100 FXML DONE - Wie sollte ich da vorgehen? Wie feingranular wird diese Trennung in Komponenten gemacht?.. Alles was zu einem Segment auf dem Screen zusammen gefasst werden kann... Immer wenn es wiederkehrende Teile sind Aber!!.. Die Verwendung von fxml kostet Zeit und Ressourcen.. FXML - File cachen / nicht immer wieder neu vom Filesystem 101/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 100/128

101 FXML DONE - Wie sollte ich da vorgehen? Wie feingranular wird diese Trennung in Komponenten gemacht?.. Alles was zu einem Segment auf dem Screen zusammen gefasst werden kann... Immer wenn es wiederkehrende Teile sind Aber!!.. Die Verwendung von fxml kostet Zeit und Ressourcen.. FXML - File cachen / nicht immer wieder neu vom Filesystem lesen.. FXML - File BITTE ->NICHT<- in einen Persistence-Layer 102/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 101/128

102 FXML DONE - Wie sollte ich da vorgehen? DONE - Wie feingranular wird diese Trennung in Komponenten gemacht? Wann verwende ich FXML, wann besser 103/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 102/128

103 FXML DONE - Wie sollte ich da vorgehen? DONE - Wie feingranular wird diese Trennung in Komponenten gemacht? Wann verwende ich FXML, wann besser nicht?.. NICHT bei der Erstellung von Komponenten wie 104/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 103/128

104 FXML DONE - Wie sollte ich da vorgehen? DONE - Wie feingranular wird diese Trennung in Komponenten gemacht? Wann verwende ich FXML, wann besser nicht?.. NICHT bei der Erstellung von Komponenten wie Anzeigen/Buttons.. sehr gute Komponenten.. siehe ENZO von Gerrit Grunwald.. Sourcen sind OpenSource -> 105/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 104/128

105 FXML DONE - Wie sollte ich da vorgehen? DONE - Wie feingranular wird diese Trennung in Komponenten gemacht? Wann verwende ich FXML, wann besser nicht?.. NICHT bei der Erstellung von Komponenten wie Anzeigen/Buttons.. sehr gute Komponenten.. siehe ENZO von Gerrit Grunwald.. Sourcen sind OpenSource -> bitbucket.. JA bei ScreenElementen die aus n Komponenten bestehen und eine Iteraktion untereinander 106/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 105/128

106 FXML DONE - Wie sollte ich da vorgehen? DONE - Wie feingranular wird diese Trennung in Komponenten gemacht? DONE - Wann verwende ich FXML, wann besser 107/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 106/128

107 codecentric AG Pause... Kaffee ich brauche! Dauer 15min file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 107/128

108 Swing und JavaFX Bei Alt-Projekten stellt sich die Frage wie wird 109/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 108/128

109 Swing und JavaFX Bei Alt-Projekten stellt sich die Frage wie wird migriert? Die Lösung heist : 110/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 109/128

110 Swing und JavaFX Bei Alt-Projekten stellt sich die Frage wie wird migriert? Die Lösung heist : JFXPanel.. in der Swing Anwendung wird ein JFXPanel eingefügt und dort die jeweilige JavaFX 111/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 110/128

111 Swing und JavaFX Bei Alt-Projekten stellt sich die Frage wie wird migriert? Die Lösung heist : JFXPanel.. in der Swing Anwendung wird ein JFXPanel eingefügt und dort die jeweilige JavaFX Komponente Problem: Die Kommunikation zwischen den GUI 112/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 111/128

112 Swing und JavaFX Bei Alt-Projekten stellt sich die Frage wie wird migriert? Die Lösung heist : JFXPanel.. in der Swing Anwendung wird ein JFXPanel eingefügt und dort die jeweilige JavaFX Komponente Problem: Die Kommunikation zwischen den GUI Threads.. es wird hier ein Kommunikationsmedium 113/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 112/128

113 Swing und JavaFX Bei Alt-Projekten stellt sich die Frage wie wird migriert? Die Lösung heist : JFXPanel.. in der Swing Anwendung wird ein JFXPanel eingefügt und dort die jeweilige JavaFX Komponente Problem: Die Kommunikation zwischen den GUI Threads.. es wird hier ein Kommunikationsmedium benötigt... CDI hat sich hier sehr gut 114/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 113/128

114 Swing und JavaFX Bei Alt-Projekten stellt sich die Frage wie wird migriert? Die Lösung heist : JFXPanel.. in der Swing Anwendung wird ein JFXPanel eingefügt und dort die jeweilige JavaFX Komponente Problem: Die Kommunikation zwischen den GUI Threads.. es wird hier ein Kommunikationsmedium benötigt... CDI hat sich hier sehr gut bewährt. -> CDI 115/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 114/128

115 Swing und JavaFX Problem: Die Kommunikation zwischen den GUI Threads.. es wird hier ein Kommunikationsmedium benötigt... CDI hat sich hier sehr gut bewährt. -> CDI bootstrap.. Spring wird gerade getestet -> Spring 116/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 115/128

116 Swing und JavaFX Problem: Die Kommunikation zwischen den GUI Threads.. es wird hier ein Kommunikationsmedium benötigt... CDI hat sich hier sehr gut bewährt. -> CDI bootstrap.. Spring wird gerade getestet -> Spring bootstrap.. afterburner.fx hilft dabei leider 117/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 116/128

117 TestFX Bei TestFX handelt es sich um ein TestFramework für JavaFX Komponenten.. Es ist OpenSource.. basiert auf 118/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 117/128

118 TestFX Bei TestFX handelt es sich um ein TestFramework für JavaFX Komponenten.. Es ist OpenSource.. basiert auf JUnit public class TextInputControlsTest extends GuiTest { public static final String TEXT_FIELD = protected Parent getrootnode() { return new VBox(new TextField()); public void shouldcleartext() { clickon(text_field).type("some text"); verifythat(text_field, hastext("some text")); push(tab); // To change focus from the TextField. cleartextin(text_field); verifythat(text_field, hastext("")); } } 119/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 118/128

119 TestFX Bei TestFX handelt es sich um ein TestFramework für JavaFX Komponenten.. Es ist OpenSource.. basiert auf JUnit public class TextInputControlsTest extends GuiTest { public static final String TEXT_FIELD = protected Parent getrootnode() { return new VBox(new TextField()); public void shouldcleartext() { clickon(text_field).type("some text"); verifythat(text_field, hastext("some text")); push(tab); // To change focus from the TextField. cleartextin(text_field); verifythat(text_field, hastext("")); } } JAVA Aber sehen wir uns das doch einfach mal an 120/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 119/128

120 JavaFX on IOT file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 120/128

121 JavaFX on... ios - RoboVM - JavaFX nativ unter 122/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 121/128

122 JavaFX on... ios - RoboVM - JavaFX nativ unter ios Android - 123/128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 122/128

123 Book about Reflection my book with Dr, Heinz Kabutz comming soon JavaFX, CDI und Reflection... ein teuflisches Paar z.b....dynamic static proxies... ;-) file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 123/128

124 IoT für Java-Entwickler comming soon file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 124/128

125 erstmalig in der Schweiz??? Wer hat Lust mit zu helfen?? Bei Interesse bitte bei mir melden. mail: file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 125/128

126 Deutschland und Schweiz JavaFX und Java8 Kickstarter (auch inhouse) -> 2 Tage JavaFX Lambdas Default Methoden Functional - Interfaces Date/Time API Streams API Concurrency mit Streams und StampedLock Auswirkungen auf API Design/Evolution pre JDK8 Designpatterns migrieren auf JDK8 Pattern file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 126/128

127 <Thank You!> g+ www github github.com/svenruppert file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 127/128

128 file:///d:/workspace/kurs-java8/doc/javafx-jumpstart.html#1 128/128

2. JavaFX. Komponentenbasierte Software- Entwicklung. Prof. Dr. Stephan Kleuker

2. JavaFX. Komponentenbasierte Software- Entwicklung. Prof. Dr. Stephan Kleuker 2. JavaFX Beispiel für Komponenten-Architektur Graphische Oberflächen mit Schachtel-in-Schachtel-Prinzip Konfiguration über get/set Konfiguration über FXML Event-Verarbeitung Data-Binding und Properties

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 05: FXML & Scene Builder Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda FXML und Scene Builder Scene Builder installieren und Demo Controller

Mehr

JavaFX Wozu braucht man eine weitere UI Technologie?

JavaFX Wozu braucht man eine weitere UI Technologie? JavaFX Wozu braucht man eine weitere UI Technologie? Wolfgang Weigend ORACLE Deutschland B.V. & Co. KG Entwicklung mit JavaFX Für die Entwicklung von Rich-Client-Web-Anwendungen wurde JavaFX von Oracle

Mehr

Medientechnik Sommersemester 2016

Medientechnik Sommersemester 2016 Medientechnik Sommersemester 2016 Übung 01 (Einführung in Java FX) Medientechnik SS 2016 - Übung 01-1 Terminübersicht Nr Zeitraum Thema 1 18.04. - 21.04. Organisatorisches, Bildbearbeitung 2 09.05. - 12.05.

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 04: Vertiefung in JavaFX Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Teil 1: Design-Pattern in JavaFX Modell-View-Controller (MVC) Observer-Pattern

Mehr

Datum, Uhrzeit: 18. 07. 2014, 10.30 Uhr Matrikelnummer:... Semester: INbac2 Prüfer: Prof. Meixner Note:...

Datum, Uhrzeit: 18. 07. 2014, 10.30 Uhr Matrikelnummer:... Semester: INbac2 Prüfer: Prof. Meixner Note:... Prüfung "Programmieren 2", INbac2, SS 2014 Seite 1 von 7 Datum, Uhrzeit: 18. 07. 2014, 10.30 Uhr Matrikelnummer:... Semester: INbac2 Prüfer: Prof. Meixner Note:... Dauer: 60 Min. Hilfsmittel: keine Punkte:...

Mehr

Grafische Benutzeroberflächen mit JavaFX Canvas, Transformationen, Scene Builder

Grafische Benutzeroberflächen mit JavaFX Canvas, Transformationen, Scene Builder Grafische Benutzeroberflächen mit JavaFX Canvas, Transformationen, Scene Builder Anzeige komplexer Grafiken Beispiel: Planstadt-Karte typische Größe: 128x128 = 16384 Felder Vergleich: map.json enthält

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 03: Einführung in JavaFX Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in JavaFX Motivation und Eigenschaften Hello World in

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Testen von graphischen Benutzeroberflächen. 26. Juni 2013 Testen von graphischen Benutzeroberflächen 26. Juni 2013 Überblick Testarten Methoden-, Klassen-, Komponenten-, Systemtests Motivation für automatisches Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien

Mehr

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo Webentwicklung mit Vaadin 7 Theoretische und praktische Einführung in Vaadin 7 Christian Dresen, Michael Gerdes, Sergej Schumilo Agenda Allgemeines Architektur Client-Side Server-Side Vaadin UI Components

Mehr

Graphische Benutzungsoberflächen

Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen

Mehr

- dynamisches Laden -

- dynamisches Laden - - - Fachbereich Technik Department Elektrotechnik und Informatik 21. Juni 2012 1/23 2/23 s dynamisch Code kann von mehreren Programmen genutzt werden => kleinere Programme einzelne Teile eines Programms

Mehr

Reflection. Arthur Zaczek. Nov 2014

Reflection. Arthur Zaczek. Nov 2014 Arthur Zaczek Nov 2014 1 Einleitung 1.1 Definition Reflection ist das Auslesen von Metainformationen über Klassen, deren Methoden & Eigenschaften zur Laufzeit. 1.2 Anwendungsfälle Analyse von Programmen

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik GUI-Programmierung mit Swing AWT und Swing Java enthält zwei Pakete zur Programmierung graphischer Oberflächen. java.awt: Das Abstract

Mehr

JAVA Oberflächen mit Swing

JAVA Oberflächen mit Swing JAVA Oberflächen mit Swing Grafik von http://javafx.com 168 168 AGENDA Grundlagen GUI Swing JavaFX 169 169 GRAPHISCHE BENUTZEROBERFLÄCHEN (1) AWT = Abstract Window Toolkit Verwendet die jeweiligen GUI-Komponenten

Mehr

JUnit. Unit testing unter Java

JUnit. Unit testing unter Java JUnit Unit testing unter Java Was ist Junit? einfaches Framework zum Schreiben von wiederholbaren Tests Besonders geeignet für unit testing Erlaubt Hierarchie von Testsuites Schreiben eines Test Case 1.

Mehr

Android will doch nur spielen. Java Eine kurze Einführung

Android will doch nur spielen. Java Eine kurze Einführung Android will doch nur spielen Java Eine kurze Einführung Agenda Einführung in Java Syntax und Semantik Komplexe Datenstrukturen OOP Weitere Java-Elemente 2 Einführung in Java Was ist Java? lt. Sun: einfach

Mehr

Open Source. Hendrik Ebbers 2015

Open Source. Hendrik Ebbers 2015 Open Source Hendrik Ebbers 2015 Open Source About me Hendrik Ebbers Lead of JUG Dortmund Java Architect @ Canoo Engineering AG JavaOne Rockstar, Java Expert Group Member Speaker, blogger & author Engineering

Mehr

Praktikum 1: Einführung, BMI Rechner

Praktikum 1: Einführung, BMI Rechner Praktikum 1: Einführung, BMI Rechner Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses Semester können Sie wieder NetBeans verwenden. Sie sollten Java auch schon installiert haben.

Mehr

Fragen 2015. Arthur Zaczek. Apr 2015

Fragen 2015. Arthur Zaczek. Apr 2015 Arthur Zaczek Apr 2015 1 Ihre Fragen 2015 2 WPF 2.1 Code Behind Mit dem MVVM Pattern haben wir praktisch keinen Nutzen für das Code Behind der WPF Forms, sind diese dann eher für kleinere Applikationen

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt 14.4.2016 Technische Hochschule Georg Agricola WORKSHOP TEIL 3 IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt Inhaltsverzeichnis 1. Kurzfassung zur Projekterstellung... 2 2. Morse-Tabelle...

Mehr

Java Desktop Anwendungen

Java Desktop Anwendungen 5 1 Java Desktop Anwendungen das Problem: Desktop-Anwendungen werden mit Hilfe der Swing- Bibliothek programmiert, aber die Swing-Bibliothek ist riesig und unübersichtlich es gab kein Programmiergerüst

Mehr

Sehenswert: Grafische Benutzeroberflächen mit JavaFX

Sehenswert: Grafische Benutzeroberflächen mit JavaFX Sehenswert: Grafische Benutzeroberflächen mit JavaFX Ø JavaFX ØGrundstruktur einer FX-GUI Ø Erste Schritte 1 JavaFX JavaFX ist eine API für GUIs ab Java 8 im Standard modernes Aussehen multi-medial styling-fähig

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Der EMF-generierte Code. 7. November 2012

Der EMF-generierte Code. 7. November 2012 Der EMF-generierte Code 7. November 2012 Überblick Wie sieht der aus einem EMF-Modell generierte Code aus? Wie ist die Beziehung zwischen Modell und Code? Wie kann generierter Code durch handgeschriebenen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 11 Prof. R. Westermann, R. Fraedrich,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

aformatik Training & Consulting GmbH & Co. KG Eine Einführung in das automatisierte Testen mit dem Robot-Framework Thomas Gauss

aformatik Training & Consulting GmbH & Co. KG Eine Einführung in das automatisierte Testen mit dem Robot-Framework Thomas Gauss aformatik Training & Consulting GmbH & Co. KG 1 Eine Einführung in das automatisierte Testen mit dem Robot-Framework Thomas Gauss Fahrplan Agenda aformatik Training & Consulting GmbH & Co. KG 2 Vorstellung

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Decorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer

Decorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer Decorator Pattern Analyse- und Design-Pattern CAS SWE FS14 Roland Müller Samuel Schärer Entwurfsmuster der «Gang of Four» Strukturmuster fassen Klassen und Objekte zu grösseren Strukturen zusammen Adapter

Mehr

Java Beans. http://java.sun.com/beans/

Java Beans. http://java.sun.com/beans/ Java Beans http://java.sun.com/beans/ Software Komponenten Eine Software Komponente ist ein eigenständiges, flexibles und einfach wieder verwendbares Stück Software. In Java: + Plattformunabhängigkeit

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch Eclipse Runtime (OSGi) als Plattform eines Swing Rich Client Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch Zu meiner Person

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016 Android Apps Mentoring SS 16 Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016 Wichtige Dateien MainActivity.java activity_main.xml AndroidManifest.xml Die Dateien MainActivity.java,

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Testen von Software. GUI-Testing: Jemmy & Marathon

Testen von Software. GUI-Testing: Jemmy & Marathon Testen von Software GUI-Testing: Jemmy & Marathon Kurzüberblick Jemmy: Marathon: Ist eine Java-Bibliothek Zum Testen von Java-GUI- Applikationen Enthält Methoden, um Benutzereingaben bei Swing/AWT Komponenten

Mehr

! Jahrgang 1969. ! Studium der Mathematik und Informatik an der TU Braunschweig. ! Entwicklung klassischer Client-Server-Systeme zur Terminplanung

! Jahrgang 1969. ! Studium der Mathematik und Informatik an der TU Braunschweig. ! Entwicklung klassischer Client-Server-Systeme zur Terminplanung 1 2 3 ! Jahrgang 1969! Studium der Mathematik und Informatik an der TU Braunschweig! Entwicklung klassischer Client-Server-Systeme zur Terminplanung! Seit 2009 Betreuung von Kundenprojekten im Java-Umfeld!

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem

Mehr

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics - 08.05.2008)

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics - 08.05.2008) GATE General Architecture for Text Engineering Alexander Hein & Erik Dießler (VL Text Analytics - 08.05.2008) Überblick GATE Die Idee Die Architektur Was noch - JAPE / DIFF / GUK ANNIE Einige Beispiele

Mehr

Musterlösungen zur Klausur Informatik 3

Musterlösungen zur Klausur Informatik 3 Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus

Mehr

Das Test-Framework JUnit ETIS SS04

Das Test-Framework JUnit ETIS SS04 Das Test-Framework JUnit ETIS SS04 Gliederung Motivation TestFirst Grundlagen Assert TestCase Lebenszyklus TestCase UML-Diagramm TestCase TestSuite Zusammenfassung 2 Motivation (I) Kostspielige Folgen

Mehr

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

Swing2JavaFX - Migrationsstrategien

Swing2JavaFX - Migrationsstrategien Swing2JavaFX - Migrationsstrategien In der Zeit vor JavaFX waren Java-Entwickler für die Implementierung einer Oberfläche für Desktopanwendungen auf die Frameworks AWT, Swing und SWT angewiesen. Aufbauend

Mehr

Vorlesung Usability and Interaction. Sommersemester 2009

Vorlesung Usability and Interaction. Sommersemester 2009 Vorlesung Usability and Interaction Sommersemester 2009 Dipl.-Inf. Philipp Heim Forschungsgebiet Interaktive Systeme Institut für Visualisierung und interaktive Systeme Universitätsstraße 38 70569 Stuttgart

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

Test von Oberflächen. 6. Test von Software mit Nutzungsoberflächen. Erinnerung: GUI-Aufbau mit Swing. Achtung: Swing und Threads

Test von Oberflächen. 6. Test von Software mit Nutzungsoberflächen. Erinnerung: GUI-Aufbau mit Swing. Achtung: Swing und Threads 6. Test von Software mit Nutzungsoberflächen Ansätze zum Oberflächentest Erinnerung: GUI-Aufbau mit Swing Einführung in FEST Systematische Nutzung von FEST Teststrategien Capture& Replay Vorstellung von

Mehr

WER ERZÄHLT DIE NÄCHSTEN 55+ MINUTEN ETWAS?

WER ERZÄHLT DIE NÄCHSTEN 55+ MINUTEN ETWAS? WER ERZÄHLT DIE NÄCHSTEN 55+ MINUTEN ETWAS? Gerrit Brehmer, Karlsruhe Auf der Arbeit: Software-Entwickler/Architekt ( / Projektleiter) bei der inovex GmbH In der Freizeit: Smart Home BEAN-MAPPING: EINSATZ

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

Angewandte Softwareentwicklung Serialisierung

Angewandte Softwareentwicklung Serialisierung Angewandte Softwareentwicklung Serialisierung WS 2014/2015 Markus Berg Hochschule Wismar Fakultät für Ingenieurwissenschaften Bereich Elektrotechnik und Informatik markus.berg@hs-wismar.de http://mmberg.net

Mehr

Grafische Benutzeroberflächen mit JavaFX Einführung

Grafische Benutzeroberflächen mit JavaFX Einführung Grafische Benutzeroberflächen mit JavaFX Einführung Grafische Benutzeroberflächen Objektorientierte Bibliotheken Windows Presentation Foundation (C#, andere.net-sprachen) Qt (C++) Cocoa (Objective C) GTK

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Exkurs GUI-Programmierung mit Java-SWING Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Für Hinweise und konstruktive Kritik

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Rich Internet Applications, Flex & Mate. (Ja, das ist Grafische Benutzeroberflächen!) 18.03.2010 Jakob Külzer jakob.kuelzer@gmail.

Rich Internet Applications, Flex & Mate. (Ja, das ist Grafische Benutzeroberflächen!) 18.03.2010 Jakob Külzer jakob.kuelzer@gmail. Rich Internet Applications, Flex & Mate (Ja, das ist Grafische Benutzeroberflächen!) 18.03.2010 Jakob Külzer jakob.kuelzer@gmail.com Überblick Mein Thema im Überblick 1. Definitionen 2. Rich Internet Applications

Mehr

Höhere Programmierkonzepte Testklausur

Höhere Programmierkonzepte Testklausur Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length

Mehr

Java Batch Der Standard für's Stapeln

Java Batch Der Standard für's Stapeln Java Batch Der Standard für's Stapeln Berlin Expert Days 18.09.2015 Dirk Weil, GEDOPLAN GmbH Dirk Weil GEDOPLAN GmbH, Bielefeld GEDOPLAN IT Consulting Konzeption und Realisierung von IT-Lösungen GEDOPLAN

Mehr

Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006

Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006 Universität Mannheim Fakultät für Mathematik und Informatik Dr. Heinz Kredel Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006 Name:.................................

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung

Mehr

Testen von grafischen Benutzeroberflächen

Testen von grafischen Benutzeroberflächen Seminarvortrag 10: Testen von grafischen Benutzeroberflächen 2004 / 06 / 28 Clemens Sommer, Gerald Peter Übersicht Motivation GUI Allgemein Fehlerquellen und deren Auswirkungen GUI Testwerkzeuge JUnit

Mehr

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk Workshop Java Webentwicklung Einführung in Hibernate Ulrich Stärk Ablauf Montag bis Donnerstag 09:00 Uhr s.t. Beginn, bis ca. 17:00 Uhr 1 Stunde Mittagspause Donnerstag Experiment Aufzeichnung der Programmiertätigkeit

Mehr

Benutzeroberflächen. Java Teil 4

Benutzeroberflächen. Java Teil 4 Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in

Mehr

JAVA Oberflächen mit Swing

JAVA Oberflächen mit Swing JAVA Oberflächen mit Swing Grafik von http://javafx.com 159 AGENDA Grundlagen GUI Swing JavaFX 160 GRAPHISCHE BENUTZEROBERFLÄCHEN (1) AWT = Abstract Window Toolkit Verwendet die jeweiligen GUI-Komponenten

Mehr

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Testen von graphischen Benutzeroberflächen. 24. Juni 2015 Testen von graphischen Benutzeroberflächen 24. Juni 2015 Überblick Motivation für das automatische Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien für GUIs Capture / Replay Testmethode

Mehr

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung Client/Server-Programmierung WS2007/08 EJB/JSP: Schritt-für-Schritt Anleitung Version 1.1, 26.09.07 Eingesetzte Software: - Apache Tomcat 5.5.9 bzw. 5.5.12 (http://tomcat.apache.org/download-55.cgi#5.5.12)

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Hintergrund und Motivation

Hintergrund und Motivation Zentrale Aspekte der Komponentenorientierung 2. JavaBeans als Komponenten Java-GUI-Elemente sind Beans Typischer Aufbau von Beans Bound properties Constrained Properties Speichern Literatur: Sun, JavaBeans

Mehr

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform 0. Benötigt werden folgende Softwarepakete:.NET Framework Software Development Kit (http://www.microsoft.com/downloads/details.aspx?familyid=4fe5bdb5-c7a7-4505-9927-2213868a325b&displaylang=en)

Mehr

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1 Komponenten 1 2. Die Anfänge 3 Peter Sturm, Universität Trier 1 Selbstzufrieden Anwendung Hardware 4 Oh? Da gibt es noch jemanden? Anwendung Anwendung TCP/IP Hardware Hardware 5 Peter Sturm, Universität

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:

Mehr