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

Save this PDF as:
 WORD  PNG  TXT  JPG

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=" xmlns:fx=" 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=" xmlns:fx=" <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=" > <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=" > <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

Entwicklung mit JavaFX

Entwicklung mit JavaFX Entwicklung mit JavaFX Für die Entwicklung von Client-Web-Anwendungen wurde JavaFX von Oracle als strategische Technologie innerhalb der Java Plattform für den Desktop vorgestellt. JavaFX 2 erfährt eine

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 04: 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

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

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

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

Einführung in JavaFX

Einführung in JavaFX Einführung in JavaFX SEP Felix Zenz 16.10.2017 Wissenschaftliche Betreuer: Prof. Dr. Peer Kröger, Janina Sontheim, Daniel Kaltenthaler, Johannes Lohrer Verantwortlicher Professor: Prof. Dr. Peer Kröger

Mehr

Javakurs für Fortgeschrittene

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert

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

JavaFX. Wolfgang Weigend. ORACLE Deutschland B.V. & Co. KG. Entwicklung mit JavaFX

JavaFX. Wolfgang Weigend. ORACLE Deutschland B.V. & Co. KG. Entwicklung mit JavaFX JavaFX Wolfgang Weigend ORACLE Deutschland B.V. & Co. KG Entwicklung mit JavaFX Für die Entwicklung von Client-Web-Anwendungen wurde JavaFX von Oracle als strategische Technologie innerhalb der Java Plattform

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

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

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

- 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

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

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

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

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Teil 11: Grafische Benutzerschnittstellen Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München

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

JavaFX. Prof. Arnold Beck Einführung Java FX 1

JavaFX. Prof. Arnold Beck Einführung Java FX 1 Framework/Classlibrary für GUI Entwicklungsgeschichte ist sehr inhomogen und noch nicht abgeschlossen. Ermöglicht Gestensteuerung (Drehen, zoomen,...) Arbeiten, wenn möglich, direkt mit der Grafikkarte

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

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

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

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

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

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT?

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT? Java -The Standard Widget Toolkit- Inhaltsverzeichnis 1. Was ist? - Vorteile von - Nachteile von 2. Vorbereitungen für 3. Das erste Programm in 4. Widgets und Styleparameter 5. - Layouts Was ist ein Widget?

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

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

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

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

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

Ü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

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

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

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

WebService in Java SE und EE

WebService in Java SE und EE Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt.

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

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

Funktionale und Objekt-Orientierte Programmierkonzepte

Funktionale und Objekt-Orientierte Programmierkonzepte Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1

Mehr

Rene Schneider GEBIT Solutions GmbH. Integrity - ein innovatives Tool zur Acceptance-Test-Automatisierung

Rene Schneider GEBIT Solutions GmbH. Integrity - ein innovatives Tool zur Acceptance-Test-Automatisierung Rene Schneider GEBIT Solutions GmbH Integrity - ein innovatives Tool zur Acceptance-Test-Automatisierung Über mich Über mich Software Consultant bei GEBIT Solutions Über mich Software Consultant bei GEBIT

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

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

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

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

WCF Services in InfoPath 2010 nutzen

WCF Services in InfoPath 2010 nutzen WCF Services in InfoPath 2010 nutzen Abstract Gerade wenn man schreibend von InfoPath aus auf eine SQL-Server Datenbank zugreifen will, kommt man quasi um einen Web Service nicht herum. In diesem Post

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

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

Programmiermethodik. Übung 13

Programmiermethodik. Übung 13 Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java

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

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

Die offizielle Homepage, Informationen, Entwicklergemeinde, etc. findet man unter www.eyeos.org

Die offizielle Homepage, Informationen, Entwicklergemeinde, etc. findet man unter www.eyeos.org eyeos Kurzer Einblick Vor und Hinter die Kulissen von eyeos! by schuestel am 17.09.2008 @ LUG mteich Wer oder was ist eyeos? eyeos ist gedacht als Notebook Ersatz um überall auf seine Dateien zugreifen

Mehr

Anwendungsbeschreibung an einem Beispiel

Anwendungsbeschreibung an einem Beispiel Anwendungsbeschreibung an einem Beispiel Im folgenden soll anhand einer Beispiel-URL die Arbeitsweise des Programmes erläutert werden und die Anwendung beschrieben werden. Als Anwendungsbeispiel soll die

Mehr

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

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

Ü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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

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

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Workshop Java Webentwicklung Tapestry. Ulrich Stärk Workshop Java Webentwicklung Tapestry Ulrich Stärk Webanwendungen Antwort im Browser des Benutzers sichtbar Anfrage geht ein Antwort rendern Anfrage an passenden Code weiterleiten 2 Servlets Servlet wird

Mehr

ROFIN App Benutzerhandbuch. Version 1.0

ROFIN App Benutzerhandbuch. Version 1.0 ROFIN App Benutzerhandbuch Version 1.0 Inhaltsverzeichnis 1. Beschreibung 2. Passwort und Einstellungen 3. Support Tab 4. Vertriebs Tab 5. Web Tab 6. Häufig gestellte Fragen BESCHREIBUNG Die ROFIN App

Mehr

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

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

ploinmailfactory Robert Reiz

ploinmailfactory Robert Reiz ploinmailfactory Robert Reiz Problem ploinmailfactory PostOffice-Pattern Templating Map mail.properties Internationalisierung Sonderzeichen Sonderfaelle Problem Eine Applikation soll E-Mails verschicken.

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

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Good bye Swing hello JavaFX

Good bye Swing hello JavaFX Testen Good bye Swing hello JavaFX Christoph Rein und Stefan Kühnlein, OPITZ CONSULTING GmbH Im Zeitalter von ios und Android fordern Benutzer verstärkt optisch moderne und ansehnliche Anwendungen. Die

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

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

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

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

Ogre Einführung Teil 1

Ogre Einführung Teil 1 Inhalt -Einleitung -Installieren und Einrichten von Ogre -Die erste Anwendung Ogre Einführung Teil 1 Einleitung Eine 3D Engine ist eine sehr komplexe Software und besteht aus mehreren tausend Zeilen Programmcode.

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

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

Integrierte und automatisierte GUI-Tests in Java

Integrierte und automatisierte GUI-Tests in Java Integrierte und automatisierte GUI-Tests in Java Gliederung Die Idee hinter GUI-Tests Herausforderungen und Probleme Techniken Jemmy-Framework Konzeptorientiertes Testen FIT (Framework for Integrated Tests)

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

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

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

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

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann Einführung in das Microsoft.NET-Framework Programmiersprache C# 02: Visual Studio / Hello World Boris Hülsmann 23.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr