Home
Netbeans - das universale Werkzeug für Applets, Desktop
Contents
1. Projects 4 Files IE Changer java x FotoFiles java x Changer java Local History x Abb 42 Versionsanzeige Local History f Services GL Ji S e E Verden fe ER Source Packages par I 4 ia S Older than 6 days ago B H javaapplication2 I e Changer java 05 12 2010 23 44 32 i FotoFiles java Hi Test Packages H Libraries Le Test Libraries t Changer java 05 12 20 0 23 44 32 1 1 Current File 9 amp 9 2m E 10 10 ESL t nderungen Sp Dateiname und indere gt 11 11 t nderungen CSR Date 12 12 Gauther Christian Eropp 13 13 author Christian Kropp 05 12 2010 23 44 32 Navigator 4x 14 14 i t Projekt an der FH Niederhein im E 15 15 Projekt an der FH Niederhein ar 16 16 S 4 public class Changer 17 17 public class Changer 18 18 a g gt l Tasks wx Gel leno tasks in all opened projects Ch 11 19 TMT 84 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 11 Javadoc Alexander Nolting 29 11 2010 11 1 Software Dokumentation 11 1 1 Was ist eine Dokumentation In Zusammenhang mit Software gibt es zwei verschiedene Arten von Dokumentation Zum einen die Beschreibung der Benutzerschnittstelle eines Programms also eine Beschreibung wie welche Funktion eines Programmes benutzt wird sowie Hilfestellungen bei Fehlfunktionen Eine solche Dokumentation liegt in Form ei
2. Abb 20 Mit dem Reverse Engineer erstelltes Diagramm 4 5 2 Erstellen eines Use Case Diagramms Zun chst wird ein neues Projekt erstellt und als Diagrammtyp Use Case Diagram ausgew hlt Danach ziehen Sie ein Aktor Element und ein Use Case Element in Ihren Arbeitsbereich Beiden Elementen werden Namen vergeben doppelklick Links und eine Beziehung Assoziation zwischen den beiden Elementen erstellt Ausflug m wx Familie Abb 21 Use Case Diagramm Teil 1 2 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Nun fugen Sie weitere Use Case Elemente ein vergeben Namen und stellen die Beziehungen untereinander her Familie ae Cf lt lt include lt lt extgnd gt extends QUT xS A l i Abb 22 Use Case Diagramm Teil 2 Um Beziehungen zu Beschriften gen gt ein Linksklick auf die entsprechende Beziehung Unter dem Kontextmen punkt Labels finden Sie die M glichkeit den Beziehungsnamen die Enden und Multiplizit t anzugeben d _ A Select All Strg A Familie Invert Selection lt lt includ Select All Similar Elements Pd e Synchronize Element With Data a Fonts amp Colors b 5 Labels b Link Name Set Multiplicity gt Both End Names Add Qualifier Both End Multiplicity Remove All Bends 3 Reset Labels Find b Abb 23 Beschriftung von Beziehungen Ihr fertiges Diagramm mit Beschriftung unternimmt E 1 Famil
3. See CounteserrlexL Bier TF Coun h main xml lt xml version 10 encoding ulLi o gt lt AbsoluteLayout android id id widget0 android layout_width fill_parent android layout_height fill_ parent android background drawable bier xmlns android http schemas android com apk res android Button android id id count android layout_width 171px android layout_height 154px android text Count androndslavoubt x o65px android layout E E gt lt Button gt lt AbsoluteLayout gt AndroidManifest xml lt xml version 1 0 encoding UTF 8 gt lt manifest xmlns android http schemas android com apk res android package org me androidapplicationl gt lt application gt activity android name MainActivity android label Beer Counter android icon drawable icon gt lt intent filter gt lt action android name android intent action MAIN gt lt category android name android intent category LAUNCHER gt lt fainrene Tilter gt K aceivity gt lt application gt lt manitest gt 159 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 20 JavaFX mobile Tobias Schulz 10 01 2010 20 1 Was ist JavaFX Java FX wurde als Open Source Framework 2008 von Sun ver ffentlicht Es dient zur Entwicklung von Web Desktop und mobilen Anwendungen Dieses Rich Internet Application Framework steht in Konkurrenz zu Adobe Flash und Microsoft Silverligh
4. referent ProfilerRuntimeObjLiveness Profil 326346 der Klassen gelangen wir 7 amp t 210 HashMap Entry 743 256 tems G 18 table HashMap 690 ZU den einzelnen a 19 Cl Family ToFontListMap sticky FontManager class FontManager Instanzen der Klasse Hier 77 bekommen wir noch es nahere Informationen zu o 24 zi gt j den Referenzen TI Arraytype Object type Gi Primitive type g Static field GC Root 9 Loop 9 3 5 Monitor Application High level Informationen ber verschiedene wichtige Eigenschaften wie z b Thread aktivitaten und Speichernutzung 9 3 6 Thread Status Timeline Aktuelle und alte Thread Status werden dargestellt Es wird zur Laufzeit aktualisiert Details Zusammenfassung von Informationen ber den Status eines einzelnen Threads Pie AQ Q Shom aimes 0 10 0 20 Gr n Thread l uft oder ist bereit Lila Thread ist pausiert Z b durch Thread sleep esse Gelb Thread wartet Z b durch omy Object wait O Java2D Disposer Attach Listener O AWT EventQueue 0 Bl DestroyJavavM Hot Thread ist blockiert Thread versucht in einen Synchronisierten Bereich einzutreten muss aber warten O Image Fetcher 1 O Image Fetcher 2 O TimerQueue O Image Fetcher 0 D Swing Shell O D3D Screen Updater O SwingWorker pool 3 thread 1 B Thread 7 E Running E Sleeping CI Wak E Montor Timeline Table Detais 69 168 Wintersemester 2010 2011 Seminar
5. Ich bin Lisa das 1 Kind Ich bin Felix daa Z Eind Unsere Eltern sind Hans und Marie Meier BUILD SUCCESSFUL total time 0 seconds Abb 17 Programm Ausgabe Reverse Engineering Es besteht die M glichkeit mit Netbeans aus einem Code ein UML Diagramm wieder zu erstellen Zur einfachen Erkl rung des Reverse Engineers nutzen Sie Ihren generierten Code aus Kapitel 4 1 1 Dazu Rechtsklick auf Ihr Projekt und Reverse Engineer ausw hlen Es ffnet sich folgendes Fenster Selected Nodes UMLProjekt dass code Java Project Source Package Folders Reverse Engineer Package Folder Package Folder Label lsrc Source Packages test Test Packages Use Existing UML Project Target Project a UMLProject dass Create New UML Project Project Name X UML Klassen pwn code 4 win Project Location C Users Bizzi Documents NetBeansProjects Project Folder C Users Bizzi Documents Ne Abb 18 Reverse Engineer Fenster Hier haben wir die Moglichkeit zu entscheiden ob die Diagrammelemente in einen bestehendem Projekt oder einen neuem Projekt angelegt werden sollen Im folgendem wurde die Option zum Erstellen eines neuen Projektes ausgew hlt Nachdem das neue Projekt angelegt wurde k nnen Sie die Elemente dort wiederfinden 26 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Edi wes serves eB Activity_UML m Sp FotoSorter le UML Klassen pwn code 4 win Ey Model o0 ELM
6. gt isThreadSafe gibt an ob das aus der JSP generierte Servlet threadsicher ist oder nicht lt page isThreadSafe true gt lt eine threadsichere JSP gt Taglib gibt an dass eine Taglib verwendet werden soll Es m ssen ein Pr fix und eine URI f r die Taglib vergeben werden lt taglib prefix MeinPrefix uriz taglib MeineTagLib tld 96 Standardvariablen Die folgenden Variablen k nnen in jeder JSP verwendet werden Sie werden auch als implizite Objekte bezeichnet application Anwendungsobjekt lebt solange der Server l uft config eine Konfigurationsschnittstelle out JSPWriter der die Daten in den HTTP Response Stream schreibt page das Servlet selbst pageContext eine Instanz des PageContext welche die Daten der gesamten Seite enth lt request das HTTP Request Objekt also die Anfrage vom Client an den Server response das HTTP Response Objekt also die Antwort vom Server an den Client session das HTTP Session Objekt Es kann dazu benutzt werden Information ber den Benutzer von einem Request zum nachsten weiterzureichen Skriptelemente Es gibt drei grundlegende Skriptelemente die erlauben Java Code direkt in die JSP einzuf gen e Ein Tag das erlaubt Code in die Klasse einzuf gen Dieses Tag kann dazu verwendet werden Daten der Klasse festzulegen Der Ausdruck wird in Member Variablen der generierten Servlet Klasse berf hrt int serverInstanceVariable 1 e Ein Tag d
7. public clazs Maimn publie static double binomialkoefiizentizrt n int Ki d EE ig double binko e 1 Lf eon Dinko Di aiaa if k 0 E 5n f binko 1 else binko binko i n X 1 91 K 1 r return Binks nubiic Static void main Sering l args Inc n KI GOObD e bDinomial rum k 2 binomisl binomialkoetfizent n El System Sor printin Ercebsais f r 4ne ber ape shinomal In Zeile 17 sehen wir dass klein ber gro abgefangen wird In Zeile 21 werden 2 unserer Punkte abgearbeitet Einmal wird n ber O und n ber n abgefangen Dann sehen wir auch das in Zeile 12 zwei Integer bergabe Werte gibt und das diese n und k hei en 40 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Damit ware unsere Checkliste abgearbeitet und der Test ist positiv verlaufen Es hatte noch einige Punkte mehr unserer Checkliste hinzuf gen k nnen Wir sehen das ein statischer Test sehr ausf hrlich und gr ndlich gestalten werden kann 6 2 4 Ziele und Vorteile Das Ziel von statischen Methoden sind logische und potenzielle Fehler zu finden AuBerdem k nnen Verst e gegen die Spezifikation und der Nachweis von Verletzungen der Projektplanung bewiesen werden Da die statische Methode aufgrund ihrer Eigenschaften immer sehr fr h in der Entwicklungsphase stattfindet dauert der Test nicht sehr lange Damit k nnen Fehler fr h erkannt und verbessert werden was niedrige Kosten als positiv
8. 0 Name Datum Name Datum cnc en Buttons u s w und Bedienungselemente m Unterst tzung von Maus und Tastatur enth lt DSC00768 JPG 29 07 05 10123 D5C00769 JPG 2003 07 05 18 26 D5C007 DSCO0797 JPG 2003 07 06 12 17 DSCOO840 JPG 2003 07 06 13 42 DSCO0867 JPG 2003 07 06 15 35 DSCO0925 JPG 2003 07 26 12 07 DSCO0949 JPG 2003 07 26 12 51 DSCO0970 JPG 2003 07 26 13 45 DSCOD986 JPG 2003 07 27 12 42 DSCO0987 JPG 2003 07 27 12 43 DSCO2028 JPG 2010 08 18 16 57 DSCO2060 JPG 2010 08 18 16 57 DSC03617 JPG 2010 08 18 16 57 DSC03748 JPG 2010 08 18 16 57 DSCO3757 JPG 2010 08 18 16 57 DSCO5126 PG 2010 08 18 16 57 Y gestaltet sich die manuelle Entwicklung eines GUI s sehr schwierig Es erfordert umfangreiche Kenntnisse in der Programmierung Daher bietet NetBeans einen GUI Editor mit welchem man per drag and drop Prinzip schnell und ohne Kenntnisse in Swing NetBeans API f r GUI Programmierung die M glichkeit hat tolle Benutzeroberflachen zu gestalten und sofort zu nutzen Speichern Abbruch Abb 43 Beispiel einer graphischen Benutzeroberflache Der NetBeans GUI Editor benutzt Swing fur die Erzeugung der Benutzeroberflache Selbst owing basiert auf seinen Vorg nger AWT und benutzt immer noch dessen EventHandling welches f r die Bedienung der graphischen Benutzeroberfl che zust ndig ist Im Vergleich zu AWT bietet Swing mehr Objekte Buttons Panels u s w und ei
9. Der Durchlauf einer Log Nachricht von der Erstellung vom Entwickler im Programmcode bis zur Ausgabe z B auf der Konsole beginnt mit einer Instanz der Klasse Logger Instanzen dieser Klasse bieten Methoden zum Erstellen eines Log Eintrages Zu jedem Log Eintrag wird ein Log Level festgelegt Dem Log Eintrag k nnen optional Meta Daten hinzugef gt werden e Name der Java Klasse welche fur die Erstellung des Log Eintrages zust ndig war e Name der Methode innerhalb welcher der Log Eintrag erstellt wurde e Name des Ressource Bundle zum Lokalisieren des passenden nationalsprachlichen Textes Das Logging Framework unterst tzt den Einsatz mehrere Logger innerhalb einer Applikation Die Logger sind untereinander in einer Baumstruktur organisiert und vererben bestimmte Eigenschaften an die jeweiligen Kinder Kindes Kinder usw Die konkrete Struktur des Baumes wird durch den Namensraum definiert Der Name eines jeden Loggers wird bei dessen Instanziierung festgelegt 32 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Root Logger de flyieigRoblers core ge flyingRablets billing da flyIngRoblets core threading de fiyingRehblets billing enail de flylngRabiets billing pel Instanziiert wird der Logger uber die statische Methode getLogger String name Der Name wird als String bergeben Existiert der bergebene Name schon so wird die existierende Logger Instanz zur ckgegeben Zum Erstellen von Log Eintr gen exis
10. FB Informatik public final Class R 4 public Static tinal class attr i j public static final class drawable public static final int bier 0x7f020000 public static final int icon 0x7f020001 j pubdrc stature final Glass Id 4 public static final int count 0x7f050001 public static final int widget0 0x7 f050000 j public static tinal class layout Public Static rinsl ane malneo0xlt0300005 5 j publrce static Tine class string public static final int app name 0x7f040000 j j Dadurch dass ein neuer Ordner drawable erstellt wurde wird automatisch in der R java Datei eine neue Klasse drawable mit allen Ressourcen die in diesem Ordner liegen angelegt Des Weiteren wurde der Button in der Klasse id hinterlegt 19 3 4 MainActivity java Der Haupt Activity wird in der onCreate Methode mit setContentView R layout main das oben erstellte Layout bergeben R layout main ist die Konstante aus der R java Datei sie referenziert das in main xml definierte Layout public class MainActivity extends Activity Called when the activity is first created Override public void onCreate Bundle icicle super onCreate icicle setContentView R layout main Nun wird in der MainActivity der Button Count mit findViewByld R id count initialisiert Danach wird ein OnClickListener auf den Button gesetzt Dieser merkt wenn man ber den Touchscreen auf den Button dr ckt Netbeans liefert sofort alle Methoden die imple
11. sum i Ein Breakpoint mit dem Print Text Sum of integers 0 to i sum w rde folgende Ausgabe ergeben Sum of integers 0 to 0 Sum of integers 0 to 1 O 0 Sum of integers 0 to 2 1 8 3 5 Breakpoint Typen e Class Wird ausgel st wenn eine Klasse geladen und oder entladen wird Man kann eine Klasse angeben auf dessen entladen und laden der Debugger reagieren soll Es k nnen Klassen angegeben werden auf die nicht reagiert werden soll 59 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Break point Type Settings Class Name fotosort FotoSorter Stop On Class Load or Unload H Conditions Exclude Classes Break when hit count quals tc Acthons Suspend Breakpoint thread Print Text Class breakpoint hit for class class Name Exception Der Breakpoint wird ausgel st wenn eine Exception abgefangen und oder nicht abgefangen wird Man kann festlegen auf welche Klassen die die Exception schmeissen der Debugger reagieren soll Es ist eben so m glich eine Bedingung frei zu definieren Settings Exception Class Name fotosort FotoSorter Stop On Caught nr Uncaught Conditions __ Filter an Classes Throwing the Exception Match Classes Exclude Classes Condition Break when hit count equals tc Actions Suspend Breakpoint thread 4 Print Text Exception fexcentionllass MamelfexceptionMessa Field Mit Hilfe dieser Breakpoint A
12. 35 ine Begin n eon i einer Schleife und einen WEE oe d 37 Location end E nach einer Schleife 38 File nsProjects SyncFiles src syncfiles DirectorySyncVisitor java Browse M platzieren Bel P Line s C Begin Ce End durchlaufen des al Programmes wird uns S as dann die Dauer o m IE 2 angezeigt wie lange er in der Schleife ben tigt 7 ETIN cet hat 49 oa new File newName exists 50 J 51 newName zipName substring O zipName length 4 j zip 52 53 this zipName newName ies openZipi 68 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 9 3 4 HeapWalker Ein nutzliches Tool um NIS f Instance den Heap einzusehen und 7 ArrayList nach Memory Leaks zu tn ge E a 3 elementData Object 334 4 items suchen Es werden die ER Bo fo String 3678 Klassen angezeigt die zur 77 EIE A de al Zeit auf dem Heap sind ng pese j 8 SH value char 3907 Segoe UI Zu jeder Klasse werden o 9 i H Q4 CASE_INSENSITIVE_ORDER String CaseInsensitiveComparator 1 di e d azu g eh Ori g en o 10 H Hi serialPersistentFields ObjectStreamField 3 0 items i o 11 Mm Uuee inmi ITI lana SS PU EEN TELLE PR W References Instanzen und die Gr e 12 oO 13 aller Instanzen angezeigt e Durch doppelklick auf eine ArrayList CO value HashMap Entry 2405 16
13. Browse private package 9 protected public Li static Li Final Generate getter and setter Generate getter Generate setter Generate javadoc G Bound PROP TEXT O Indexed Lj Generate Property Change Support Lj Generate Vetoable Change Support Preview protected String text return tr public String getText return text 5 OK Cancel 96 168 Wintersemester 2010 2011 einfache Variable Schritt 2 Klasse kompilieren falls noch nicht kompiliert Rechts klick auf zu kompilierende Klassdatei und dann auf Compile File oder mit F9 Schritt 3 Beanlnfo erstellen Hechts klick auf Klassdatei und dann auf Beaninfo Editor Es ffnet sich eine Abfrage ob Beanlnfo neu erstellt werden soll und nach dem Klick auf Yes erscheint Quelldatei von dem Beanlnfo Schritt 4 Bean anpassen Wenn man von Source auf Designer Editor umschaltet kann man bequem Eigenschaften die man zur Benutzung freigeben m chte aktivieren im Bild Markiertes Element beispiel2 oder deaktivieren Daf r aktiviert oder deaktiviert man Option Include in Beaninfo Seminar an der FH Niederrhein FB Informatik v examples Open E Antenna java i ContactEdito Cut Strg X E Find java Copy Strg C db is NewcClass jav n E NewJFrame j gt D Load Generator gt Libraries Run File Umschalt F6 v examples d Open EB Antenna java P EB ContactEditoy Cut Strg X 3
14. Constraints Primary key _ Unique Mul Index check 69 Provide valid column name Cancel Nach einf gen einiger Spalten bekommen wir folgende Ausgabe Data type Size Seminar an der FH Niederrhein FB Informatik 119 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Create Table Table name kunde Kev Index Mul Unique Column name Data type F name VARCHAR 50 O O A E Wee Wpome 5 CHILE MI DI es MACH 5 gt Und hiermit ist unsere Tabelle kunde fertig WA jdbe derby localhost 1527 car database nbuser on HE APP NBUSER N Tables T EI KUNDE Ce Views see Ce Procedures H E NULLID 15 3 3 Datenbank einbinden Um die Datenbank in unser Projekt einzubinden m ssen wir erstmal ein Projekt erstellen und zwar wie folgt Netbeans starten gt File gt New Project gt Java gt Java Desktop Application 120 168 Wintersemester 2010 2011 E New Project Steps 1 Choose Project 2 Choose Project Categories i Java Web E Java EE Seminar an der FH Niederrhein FB Informatik Projects E Java Application Java Desktop Application Ga Java Class Library E Java Project with Existing Sources LAS Java Free Form Project KH Java Card i Java ME G l i Samples Description Creates a skeleton of a desktop application based op the Swing Application Framework JSR
15. Er Configuration defaut cong E Lc Libraries i 9 Buld Compiirig Main Class referat bessi Man no Packaging v REN my Di Ad peer Working Directory Loo Web Start VM Dpto pm L o Formatting e g nm He as EL Li ll me m Eu a ee Ei ee To run and debug the anplicaSan witht Java Web Start frst enable Java Wen Start Le lees Dort schreibt man dann unter VM Options das zu bergebene Argument ein 44 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik In unserem Beispiel mit Fehlerhafter Formel sieht dies nun so aus public static double binomialkoeffizent int n int k 1 else if tk 6 k n binko i binko binko n ik 1 521 E return binko public static void malni tringl args mp n E3 double binomial nei ke binomial binomialkoeffizent nr Ek Svstem put println E gebnis f r ne ber eg binomial assert binomial 3 0 r Ergebnis sollte 3 0 sein i Wie zu sehen ist sind die if und else Anweisungen nun verschwunden und durch eine Programmzeile ersetzt worden Es wird immer noch berpr ft ob das Ergebnis 3 0 ist Sollte dies nicht der Fall sein dann wird eine Exception mit dem Text Ergebnis sollte 3 0 sein geworfen Dutput Referat Beispiel run LP Ergebnis f r 3 uber Z 1 5 LEL Y j xception in threed main java lang AssertionzError
16. Ergebnis sollte 3 0 sein x i Jes i 1 at referat beispiel2 Main mainiMain java 45 Ze Java Besult 1 BUILD SUCCESSRUL total time 0 seconds Ist die Formel allerdings richtig so erfolgt keine Ausgabe etc Das Programm arbeitet sich E Output Referat Beispiel run BH run m pargadnes fur 3 uber z 2 0 BUILD SUCCESSFUL total time 0 seconds am 45 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 6 4 4 Vorteile Wenn wir unsere Beispiele beide dynamischen Methoden vergleichen stellen wir fest das der Programmcode nun wesentlich kurzer ist Aus 5 Zeilen Code wurden 1 Zeile Code die gut sichtbar als Korrektheits Check darsteht AuBerdem lassen sich die Assert Anweisungen explizit ein und ausschalten so dass bei der Auslieferung der Software an den Kunden nur noch das Ubergebene Argument aus der Virtuellen Maschine entfernt werden muss Falls der Kunde spater einen Fehler hat kann der Programmierer diesen leichter nachvollziehen in dem er die Tests wieder einschaltet und den Testfall durchl uft 6 5 Junit 6 5 1 Was ist Junit Junit ist ein Testframework von Java Entwicklern selber Das Aufbau Prinzip von Junit ist recht einfach erst testen und dann Programmieren Dafur stellt das Framework Klassen zur Verf gung die es erm glichen das Testmethoden schon w hrend der Entwicklung des Programmes zu erstellen Au erdem bietet es
17. For the list of included fixed bugs please check http wiki netbeans org NetBeans6 5PatchesInfo The UML plugin enables model driven analysis design and implementation through the use of the Unified Modeling Language UML It supports all major phases of the development lifecycle from reverse engineering and html model reporting to user interaction and process modeling on through to code generation and deployment of applications Web Client Tools Web ICEfaces Project Integration Web amp Java EE Visual JSF Web amp Java EE Visual Web JSF Backwards Com Web amp Java EE IBM WebSphere Application Server Web amp Java EE JavaScript Library Prototype 1 Web amp Java EE JavaScript Library Manager Web amp Java EE Web Applications Web amp Java EE EE EE E e en EE TT EE e EES SE m Install 1 plugin selected 9MB Demos and Tutorials gt gt Cose Help Abb 7 Plugins Fenster von Netbeans IDE 6 5 Hier suchen Sie unter dem Reiter Available Plugins UML und w hlen diesen an Danach auf den Install Button klicken 4 3 2 Installation von UML ab Netbeans 6 8 Ab Netbeans IDE 6 8 wird das UML Plugin leider nicht mehr unterst tzt Als Ersatz kann man ein Plugin von Visual Paradigm nutzen welches Sie hier finden http www visual paradigm com product sde nb Hier laden Sie sich die Community Version runter welche Sie nach einer Registrierung mit weni
18. Fotoapparaten zum gleichen Ereignis erstellt wurden Wurde vorher die Zeit nicht 9 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik synchronisiert so lassen sich hinterher die Fotos kaum noch in chronologische Reihenfolge bringen Um den Studenten den Grundcode abzunehmen wurde eine Rohfassung mit vielen Verbesserungsmoglichkeiten zur Verf gung gestellt Einige Verbesserungen werden insbesondere am Schluss dieses Skripts beschrieben FotoSorter m iz bd Datei Info Neuer Name Skartindex Jahre D Monete Tage Stunden pn Minuten o Hame Datum Mame Datum cardi d0505 jpg SA OC 17 52 card1d0505 jpg 2017 05 27 17 52 yFoto106 IPG 2005 02 09 07 39 P5010082 IP ts 007 06 04 15 34 vfotal cut jpg yFoto2dD amp jpg PSOL0082 IPG S010082_cut jpg xDanO _039 IPG n07 039 rutjpg Abb 6 GUI des Beispielorogramms 10 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 2 Hello World mit Netbeans Alexander Zitzer Mit nur wenigen Klicks k nnen wir ein kleines Programm erstellen welches uns im Konsolenfenster Hello World ausgibt Dazu gehen wir wie folgt vor Netbeans starten gt File gt New Project Im folgenden Fenster w hlen wir unter Categories Java und unter Projects w hlen wir Java Application und klicken auf Next 98 New Project Steps Choose Project 1 Choose Project Categories Projects de Java App
19. Javen und zuletzt Mobile Applications an 1 2 Installation Java und Netbeans lassen sich in einem Schritt von der Website www netbeans org herunterladen DE Download Bundles Supported technologies Java SE JavaFX Ruby C C PHP All E Java SE ke i U JavaF IU Java Web and EE Di Java ME U Ruby amp H C C PHP U SOA Bundled servers GlassFish V2 URZ OU GlassFish v3 Prelude OU Apache Tomcat 6 0 18 ke Download j k Download i 4 Download i Download i Download j Download i Free 39 MB Free 71 MB Free 59 MB Free 24 MB Free 26 MB Free 249 MB Abb 2 Downloadbundle F r das Seminar empfiehlt sich das gezeigt Bundle der IDE zu installieren Zum Zeitpunkt des Seminars war dies Version 6 9 1 Um Netbeans zu installieren muss zunachst das Java Development Kid installiert werden automatisch im Bundle 7 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik em Standardm ig hier mindestens Version 1 5 04 damit der E 6 0 03 44 3 bin 1 1 1 2 l Ih WH Profiler richtig l uft ak Java Programme JVM java javac jar O lib nem 3 Ke managemen 5 re Di security m studierwerte Demos 5B a gt calendars properties F S l charsets jar E 3 jemti J R E E classlist management ava Kuntime Environment GE a e nbproject am ales gt iid flavormap properties S
20. Path 1 iScopesiAl sl Basic Project Classpath example 1L0 5HAPSHOT El Vi 18 9 Andere nutzliche Links Getting started guide http maven apache org quides getting started index html Maven in 5 Minutes Kurzform des Getting started guide htto maven apache org quides getting started maven in five minutes html 149 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 19 Mobile Application mit Android Dominic Scharmann 10 01 2010 Vorwort Dieses Kurzskript soll nicht dazu dienen ihnen komplett die Grundlagen von Android zu vermitteln Hier wird nur leicht an der Oberfl che gekratzt um einen kurzen Einblick in die Android Welt zu geben und um Ihr Interesse an diesem groBen Open Source Projekt zu wecken 19 1 Was ist Android d Android ist ein Betriebssystem f r mobile Ger te zum Beispiel f r omartphones tabletPCs oder Netbooks Android wurde 2003 i gegr ndet aber im Sommer 2005 von Google aufgekauft Im November 2007 gab Google offiziell bekannt gemeinsam mit 33 anderen Mitgliedern der Open Handset Alliance ein Betriebssystem f r Mobiletelefone namens Android zu entwickeln Ende 2008 war die erste Android Version verf gbar Android basiert auf dem Linux Kernel 2 6 ist freie Software und quelloffen Das bedeutet dass Mobiletelefonhersteller keine Lizenzgeb hren zahlen m ssen wenn sie Android als Betriebssystem auf ihren Ger ten verwend
21. Split Pane H Scroll Pane Tool Bar 4 3 Desktop Pane Der Editor unterst tzt beim zeiehen eines Objektes in ein a Internal Frame Layered Pane Swing Controls Swing Menus Swing Windows AWT Beans tr Java Persistence JFrame und zeigt im voraus wie die Anker gesetzt werden Abb 48 Palette mit Objekten Positionierung des Objektes stor fold defaulretste Die Palette beinhaltet alle CR Objekte die Ihnen Swing zur Verfugung stellt Um einen ES Objekt dem GUI hinzuzuf gen reicht einfach das gew nschte Objekt aus javax s2wing GroupLayout layout new javax swing GroupLavyout gecContentPane der Palette in die ZU at SEA Stores i ah erstellende GUI zu ziehen EECH drag and drop Beim addGroup layout cree Positionieren eines Objektes EE greift Ihnen der Editor wieder addContainerGap 328 Shert NAX VALUE unter die Arme so zeigt er E Ihnen bestm gliche Layout createParallelGroup javax swing GroupLayout Alignment LEADING Platzierung der Anker und Pozen intl airborne passt automatisch das Objekt Ee und die Schrift auf die gleiche a ees ee Ebene wie die der anderen Objekten falls sich diese in pack der gleichen horizontalen vertikalen Ebene befinden private Java Sgr Label jLzebe11 Abb 49 Neues Objekt im Code rot markiert Die Anker in NetBeans engl Anchor spielen bei der GUI eine wichtige Rolle Sie bestimmen die Positionierung der Objekte in d
22. Test expected Exception class 124 public void testAbbuchenNegativ throws Exception 125 System onut println abbuchen 126 int 100 127 bankAccount instance new bankAccount 128 instance abbuchen x 129 130 131 Und das war es auch schon Von der Test Methode wird nun eine Exception erwartet die wir durch ein fehlerhaftes Abbuchen erhalten 7 3 Die Assert Befehle Durch verschiedene Assert Befehle ist eine Vielzahl an Tests m glich im folgenden stelle ich die wichtigsten Befehle vor e assertEquals Object expected Object actual Vergleicht zwei Objekte assertEquals Es ist 10 10 list size mit einer Tolleranz von 0 01 assertEquals Es ist ungef hr 3 1 1 3 33 10 0 3 0 0 01 e assertArraykquals Object expecteds Object actuals Vergleicht zwei Arrays von Objekten assertArrayEquals Die Arrays sind gleich array_B array_B e assertTrue boolean condition Pruft ob der Vergleich richtig ist assertTrue Ist gleich if A B e assertFalse boolean condition Pruft ob der Vergleich falsch ist assertFalse Ist ungleich if A B e assertNull Object object Pr ft auf NULL assertNULL Es ist NULL null 92 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik e assertNotNull Object object Pr ft auf Nicht NULL assertNULL Es ist nicht NULL objekt A e assertSame Object expected Object actual Pr ft auf die Gleichheit
23. Welcome Xx E FindDialog java X source Design REF EJ el fe 2 Properties window displays editable settings for the selected components jcheckBox1 jCheckBox5 jButtonz ijcheckBoxz jCheckBox 6 Buttons ijcheckBox3 jcheckBox j lt heckBox4 jcheckBox amp 8 Hier sieht man die Benutzeroberflache wie sie im Allgemeinen aussieht nachdem man einige Elemente einem Dialog hinzugef gt hat Als erster Schritt der Internationalisierung wei t man den Elementen Werte Bezeichnungen zu die in einer externen Datei der Properties datei die durch Markieren der Automatic Internationalization Option in den Eigenschaften der Form Datei erstellt wird 128 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik abgespeichert werden Nun hat man die M glichkeit beliebig viele Sprachen hinzu zufugen in dem man eine Locale properties datei erstellt Rechtsklick auf dem jeweiligen Package dann New gt Properties File F r GUls lasst sich die Internationalisierung automatisch im Inspector Fenster aktivieren Internationalization Automatic Internationalization Properties Bundle File demo Bundle Design Locale default language k In der Locale datei werden die jeweilige Strings in einer anderen Sprache abgespeichert vorteilhaft hier bei ist auch die passende Benennung der Locale nach dem Schema Dateiname Sprache Land zu speichern z B Editor de DE prop
24. af SYSIBM fe SYSPROC Sy SYSSTAT Im folgenden Fenster k nnen wir de SQL Befehle eingeben und ausf hren 116 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik RETE Z Fur Start Page x Lol SQL Commandi x Si SE Connection jdbc derby localhost 1527 newDBapp test on TEST v PS Ee ege DBE Rasse e A 9o op d Leen Output Java DB Database Process S x Tasks 2010 12 17 14 53 02 265 GMT Sicherheitsmanager mit einfacher Server Sicherheitsrichtlinie installiert A 2010 12 17 14 53 03 031 GMT Apache Derby Network Server 10 5 3 0 802917 wurde gestartet und ist bereit Verbindungen am v D A Folgende Funktionen bietet Netbeans an SFO GBH AFE fou a m m e D E ee DUK ORE ls e Ej D Run SQL oF verbinden mit Services SQL Verlauf a Keep Prior Tabs 4 i E Gei zuletzt bearbeitet last next ak Suche V Bookmark last next Toggle Bookmark I ls verschiebe links rechts o B otart Stop Macro Recording Ein kurzes Script ausgef hrt create table auto id int not null primary key marke varchar 50 117 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik ort varchar 50 preis varchar 20 create table haendler id int not null primary key h_name varchar 50 ort varchar 50 email varchar 70 Wir bekommen zwei Tabellen wie im folgenden Bild zu sehen ist NetBeans IDE 6 9 1 F
25. berwacht wird ist der Netbeans Profiler deutlich schneller und kann fast bei voller Geschwindigkeit arbeiten Das Ergebnis ist jedoch kaum ver ndert gegen ber einer berwachung von 100 Live Objects Objekte die zur Zeit auf dem Heap sind und somit auch Speicherplatz beanspruchen 71 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Live Bytes Es wird angezeigt wieviel Speicherplatz von den Live Objects auf dem Heap genutzt wird Avg Age Durchschnittliche Alter der live Objects Alter Uberlebte garbage collector Zyklen Generations Anzahl der Objekte verschiedenen alters Allocation Stack Traces Dieses Fenster kann aufgerufen werden indem man in den Memory Results mit einem Rechts klick auf eine Klasse geht und es dort auf Show Allocation Stack Traces klickt Es werden von der Klasse ausgehende Funktionen gezeigt Info Informationen ber das Erstellungsdatum Ces Name opeicherort und Boner Rents mie eet berpr fungsart java lang ref Finalizer ENS ees pe 42 20 3 46 0 0 char 596 1396 javax swing text AbstractDocument LeafElement BEI 1 536 B 13 7 24 11 6 92 0 1 javax swing text GapContent MarkData java io FileDescriptor ce java lang String javax swing text GapContent StickyPosition java lang Thread e co ao far CH syncfiles DirectorySyncVisitor java util concurrent locks AbstractQueuedSynchr java util ector
26. dass das zu testende Programm nicht ausgef hrt werden muss Diese Testart kann sehr fr h eingesetzt werden da kein Ausf hrbares Programm zur Verf gung stehen muss Bei der Statischen Methode von Software Tests gibt es keine Testdaten oder Testf lle Dadurch ist die statische Methode mehr Analyse als testen Es wird dabei der Quellcode analysiert und nach einer Checkliste bewertet ob dieser Quellcode Fehler aufwei t oder etwas vergessen worden ist Des fteren werden dazu mehrere Tester genommen 6 2 2 Aufbau einer Checkliste Hier ein Beispiel wie eine Checkliste aussehen k nnte 39 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik e Funktionsumfang Spezifikation Entwurf Dokumentation Ist die Funktion entsprechend der Spezifikation umgesetzt worden Ist die Dokumentation des Programms vorhanden und vollst ndig Enth lt das Programm nicht gew nschten spezifizieren Code e Programmierung allgemein Qibt es mehrfach vorhandenen Code z B durch mehrfaches Kopieren e Initialisierung und Deklaration e Methodenaufruf e Felder 6 2 3 Beispiel Wie k nnte so eine Checkliste in unserem Programm aussehen Funktionsumfang Spezifikation e Klein ber gro wird abgefangen N ber 0 wird abgefangen N ber n wird abgefangen Gibt es 2 Integer bergabewerte Hei en diese n und k Anhand dieser kleinen Checkliste k nnen wir nun berpr fen ob unser Quellcode den statischen Test bersteht
27. 1 ausdruck2 Assert x gt 0 x kleiner OI Wie wir sehen kann Assert auch einen zweiten optionalen Ausdruck annehmen Dieser wird verwendet um bei einer nicht wahren Aussagen eine Exception zu werfen Dieser wird als eine Assert Exception geworfen Dem entsprechend hat der Programmierer die M glichkeit auf diese zu reagieren 6 4 3 Beispiel In unserem Binomialkoeffizienten behandeln wir den gleichen Testfall wie eben bei unserer if und else Methode Es muss dabei beachtet werden dass die Virtuelle Maschine von Java Assert ignoriert wenn diese nicht explizit eingeschaltet ist Dies wird durch ein Argument ea an die Virtuelle Maschine bergeben 43 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik I Referat ge 5 Li Source Packag 3 68 referat be 8 Han j Build Test Packages Clean and Burld Hei F 4 L Ubrares Clean a b r j H L Test Libraries Generate lavador Run Debug Prafile Set Configuration Fk default config Set as Main Project Customize i Open Required Projects Referat Beispiel2 Mai Close Renarne Mesi Copy Delete Entf Find Strq F Share on Team Server Versioning F Local History k Properties Daf r klickt man mit der rechten Maus Taste auf sein Projekt gt Set Configuration Customize Project Properties Referat Beispiel D Categories iu t rce gU
28. 2011 Seminar an der FH Niederrhein FB Informatik 16 Internationalisierung Paul Bernasch 20 12 2010 16 1 Was ist Internationalisierung Internationalisierung ist ein Tool das das Anpassen eines Programms an eine andere oprache als die Sprache in der es anf nglich programmiert wurde erleichtert 16 1 1 Welche Moglichkeiten stehen uns durch die Internationalisierung offen Wir k nnen nun mit wenigen Klicks Strings anpassen das Programm somit in eine andere Sprache bersetzen aber wir k nnen auch die Darstellung des Datums die MaBeinheit f r die Langen und die Darstellung der Wahrung andern 16 1 2 Der Begriff I18N I18N ist eine Abk rzung f r den Begriff Internationalization da man mit dem ausschreiben des Begriffes lange besch ftigt ist wurde wahrscheinlich diese Abk rzung eingef hrt Bei I18N steht das f r den den ersten Buchstaben in Internationalization die 18 soll die 18 folgenden Buchstaben ersetzen und das N ist das letzte N und somit der letzte Buchstabe des Wortes Internationalization 16 2 Wie funktioniert Internationalisierung 16 2 1 Internationalisierung einer einzelnen Datei Die veranderbaren Strings werden in einer Properties Datei als Key Value Paare gespeichert Somit ist es einfacher die Programme zu internationalisieren da nur die Values angepasst werden m ssen und nicht der ganze Code umgeschrieben werden muss Hier ein Beispiel anhand einer vorher erstellten Benutzeroberflache
29. Button bestatigen 4 4 2 Der Arbeitsbereich Lassen Sie uns einen kurzen Blick auf Ihren Arbeitsbereich werfen nachdem Sie Kapitel 3 1 beendet haben 21 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik m a ee oss Pe Es Oe Suereb pee le ee HE r i i fir Fi e A muma n Mane kac mm m Ze ou in Ra EE I i a i no e z n ui bei Ex my been Abb 10 Der Arbeitsbereich Nun die einzelnen Bereiche im Detail 4 4 3 Das Projects Fenster Unter Model finden Sie ihr Diagramm mit einer vollstandigen IER Auflistung und nahere Informationen zu den einzelnen Elementen GQ ingested Prts Unter Diagrams sind nur die Diagramme aufgef hrt somit besteht die M glichkeit schneller auf die einzelnen Diagramme zugreifen zu k nnen falls Sie mehrere Diagramme in einem Projekt haben erspart Ihnen dies vielfaches klicken durch den Model Pfad 4 4 4 Das Properties Fenster In diesem Fenster werden Ihnen die Eigenschaften detailliert eR Ya REE Ze angezeigt UML mit Metbeans 4 4 5 Das Palette Fenster Im Palette Fenster werden Ihnen je nach gew hlter ae JA Diagrammart die verf gbaren Elemente angezeigt die Sie f r Ss css Le Interface Ihr Diagramm benutzen k nnen lici Erumerabon C3 Package Des Weiteren haben Sie auch die M glichkeit die Palette durch iii tataie Lj Artfact Schablonen zu erweitern um so immer wiederkehrende S Alaged Type Act Probleme nicht jedes Mal neu er
30. Familie i j BRE Bem Be String Abb 19 Mit dem Reverse Engineer erstelltes Projekt Allerdings ist Ihr Diagramm noch nicht im Projekt vorhanden dies muss manuell hinzugef gt werden Um dieses zu erhalten Rechtsklick auf Ihr Projekt und New Diagram w hlen Danach k nnen Sie eine beliebigen Diagrammtypen w hlen Ihre Wahl hat keinen Einfluss auf die Darstellung Sie haben lediglich ein Problem wenn Sie nicht wie im oben genannten Beispiel ein Klassen Diagramm gew hlt haben da Ihnen nur die zum ausgew hlten Diagrammtypen zugeh rige Palette angezeigt wird und Sie somit ihr Diagramm nicht direkt mit Klassen Diagrammelementen erweitern k nnen Nun m ssen Sie nur noch die einzelnen Elemente aus dem Projektfenster in Ihr Diagramm ziehen Alle Klassen Funktionen Attribute Beziehungen etc werden automatisch dargestellt So sollte Ihr Ergebnis aussehen p Ss jiy T x TA ii age LT m Ask pel ke aaa Me ck ec i EE DT GEM af i ber re Fine ieee E peL E WW Sal o och Ee a ee rog Ese em M uet rias pua an 1 rs aliena ics nne iJ rci nd ETT c mum F em ble cog Lilia Td si fmm R is iam nmi ei rei o lene ks C Terum iam meg lad Cra Les e rimpi cam erg 2 iy ea dun b ao Gerke i NC Fes ps A bf pe H ge P Pa wei a T rampe ee eg en RH a Vedi ueriial rr i s oa P bert ge F Ecg m H Famam mam Ieper e Beie keet ehem eee eege Pamir daier raih pe f
31. Klassen zur Test Protokollierung zur Verf gung Netbeans stellt daf r einige einfache Funktionen zur Automatischen Erstellung der Testklassen Junit ist zu dem noch Threadsicher welches if und else sowie Assert nicht sind Eine Ausf hrliche Einf hrung in Junit bietet das Referat und die Ausarbeitung von Marcel H ft 6 6 Quellen http de wikipedia org wiki Binomialkoeffizient http de wikipedia org wiki Softwaretest http de wikipedia org wiki Statisches_Software Testverfahren http de wikipedia org wiki Dynamisches_Software Testverfahren Handbuch der Java Programmierung Addison Wesley 5 Auflage http www iks hs merseburg de uschroet Literatur Java_Lit JAVA_Insel javainsel_ 08 006 htm http de wikipedia org wiki Assertion Informatik http www fh wedel de si seminare ws02 Ausarbeitung 6 junit layout3 htm 46 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 7 Testen mit JUnit 4 Marcel H ft 15 11 2010 7 1 JUnit 4 X Neuheiten Im JUnit 4 X gibt es einige Neuerungen gegen ber der Vorg ngerversion 3 X Die Testmethoden werden nicht mehr von einer TestCase Klasse abgeleitet Der Methodenname ist frei w hlbar ein Pr fix ist nicht mehr n tig Assert Methoden sind nun statische Methoden der Klasse Assert Um Testmethoden zu identifizieren wird die Test Annotation verwendet JUnit 4 nimmt dem Programmierer fast 95 der Arbeit ab Hierzu schauen wir uns zuerst eine Klasse an und lassen
32. Kropp 29 11 2010 10 1 Was ist eigentlich CVS CVS steht f r Concurrent Version System und ist ein System zur Versionsverwaltung Versionskontrolle Es wurde fur Softwareprojekte entwickelt Als Versionierungs Tool soll es bei folgenden Problemen als Werkzeug dienen e mehrere Benutzer arbeiten gleichzeitig an einem Projekt und bearbeiten die gleiche Datei dabei tritt ein Konflikt auf e ineinem Programm tritt ein Bug auf seit wann gibt es den Bug wie ist er entstanden e Entwickler m chten verteilt ber das Internet ein Programm entwickeln Generell lasst sich also das folgende Anforderungsprofil fur ein Versionsmanagementsystem definieren e Anderungen in Quelltexten sollen ersichtlich gemacht werden e alle Anderungen in Quelltexten sollen dokumentiert werden e alle lteren Versionen sollten wiederherstellbar sein e mehrere Benutzer sollen gleichzeitig an einem Projekt arbeiten k nnen Daraus kann man schon mehrere Dinge erkennen 1 Das CVS ist ein Multiuser Tool der es erm glicht ein Projekt auf mehreren Computern Schnittstellen zu benutzen 2 Altere Versionen von einer Datei werden zur Nachkontrolle gespeichert 3 Anderungen werden an einer zentralen Stelle f r jeden ersichtlich gespeichert damit die verschiedenen Versionen nachvollzogen werden k nnen Doch das ist noch l ngst nicht alles denn das CVS bietet als Freeware Tool durch seine Client Server Struktur einen zentralen Anlaufspunkt das Repository
33. New Delete Main Class examples Antenna Browse Arguments Working Directory Browse VH Options Duser language de Duser country DE e g Xms10m Run with Java Web Start To run and debug the application with Java Web Start first enable Java Web Start Hier sehen wir das Fenster in das wir den Befehl eingeben m ssen 16 2 2 Internationalisieren eines gesamten Projektes Im Prinzip l uft die Internationalisierung eines ganzen Projektes ab wie bei der Internationalisierung der einzelnen Datei nur das es sich hier anbietet den 130 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Internationalisierungs Wizard zu benutzen Dieser ist im Netbeans Hauptfenster ber Tools gt Internationalization gt Internationalization Wizard zu erreichen Als erster Schritt muss man jedoch wieder Properties dateien wie vorher beschrieben erstellen damit der Internationalization Wizard einen Speicherort hat Als n chstes starten wir den Internationalization Wizard Der Internationalization Wizard geht in vier Schritten vor als erstes sucht man sich eine Quelldatei und f gt dieser dann die passende Properties hinzu Dies sieht dann wie folgt aus ZB Internationalization Wizard Steps Select Sources to Internationalize 1 of 4 1 Select Sources to Select Ehe source Files that vou wank to internationalize Internationalize Use the buttons to add and remove source Files Select
34. New erstellen Sie ein neuen Emulator Start starten einen Emulator 19 2 3 Android Pluging in Netbeans installieren Um Android in Netbeans einzurichten fugen Sie in der Netbeans IDE unter Tools Plugins Settings folgendes Update Center hinzu Name nbandroid URL http kenai com downloads nbandroid updates xml Nun steht unter Tools Plugins Avaible Plugins das Android Plugin zum Installieren bereit Android Mobility d Nachdem Sie das Android Plugin installiert haben m ssen die Android Platformen in Netbeans hinzugef gt werden Dies funktioniert unter Tools Java Platforms 154 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Q Java Platform Manager x Use the Javadoc tab to register the API documentation for your JDK in the IDE Click Add Platform to register other Java SE and Java ME platform versions Platforms Le Add Java platform ol o j2se lj JDK1 6 Default Steps Select platform type 1 Select platform type 2 Choose Platform Folder Select platform type to install db em J Java Standard Edition Add Platform Next gt Cancel Help Wahlen Sie hier Google Android Open Handheld Platform Use the Javadoc tab to register the API documentation for your JDK in the IDE Click Add Platform to register other Java SE and Java ME platform versions Platforms ANDROID Platform Name android a ep Platfor
35. Raute am Ende des Ganzen dargestellt wobei bei der Komposition die Raute gef llt ist Komposition Da em existenzabh ngiger Teil Kardinalit t 15 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Beispiel Bem m Attribute S protectedAtinbut atinbuttyp defauitwert HochEmekla3s54 h d b liebag viele Alr bufe vom tip Klasseklasse im Agut viole 3 3 2 Aktivit tsdiagramm Ein Aktivitatsdiagramm modelliert das dynamische Verhalten eines Systems anhand einer oder mehrerer Aktivitaten die auch ineinander geschachtelt sein k nnen Eine Aktivit t setzt sich dabei aus einzelnen Aktionen zusammen welche in Form eines Graphen angeordnet sind Die Knoten dieses Graphen stehen dabei f r die einzelnen Aktionen und Kanten f r die Objekt und Kontrollflusse 16 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Aktionen e lt lt test tBegin gt gt Strukturierende Knoten DU Einladung bekommen Objektknoten Aktion Kante Kontrollknoten Bedingung 17 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 3 3 3 Sequenzdiagramm Ein Sequenzdiagramm stellt den Informationsfluss zwischen Kommunikationspartnern grafisch dar Die vertikale Zeitachse symbolisiert dabei den temporalen Ablauf auf der die Interaktionen und Nachrichten entsprechend ihrer zeitlichen Reihenfolge eintreten Nachrichten werden d
36. Resources for Sources Field generation Selected Sources Modify Found Strings lee examples Antenna Add Source s E examples contackEdibar IER examples Find Cancel Help 1 Schritt E Internationalization Wizard Steps Select Resources for Sources 7 of 4 Select SOUPCES to Select the resource bundle s where you want to store each file s Internationalize internationalized strings Click Select All ba check one resource bundle Far all Files Select Resources for Sources Selected Resource Bundles Field generation i Modify Found Strings Resource Select All la examples Antenna Select Resource 2 Schritt Im dritten Schritt des Wizards kann man noch der Quelldatei noch weitere Eigenschaften hinzuf gen um einfacher auf die Datei zugreifen zu k nnen Im n chsten Schritt kann man nun alle Strings aus der Quelldatei bearbeiten und nun werden die Strings der Dateien die die gleiche Properties Datei verwenden direkt angepasst Der vierte Schritt des Wizards sieht somit wie folgt aus 131 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik W Internationalization Wizard Steps Modify Found Strings 4 of 4 1 Select Sources to Source Internationalize Select Resources for Sources Field generation Er examples Antenna Modify Found Strings ER examples ContactEditor v antena TENN Height m IHEIGHT M v 140 000 140 000 110 00
37. SrseigreneareBenasdec Dee BO DET Snipa tai Cur sat feu pin HAAR tone pchreartdraror zhrcnn 7 AnshsEurare ana a Inu Dyciw one feci Tras are Mr vy fee Tras anesioe pyPem 2abult H xci Abb 50 Anker und Texteditierung eines Objektes Beispiel Um den Text von jLabel1 zu editieren w hlt man das Objekt aus und in Properties den Text siehe Abb rot markiert editieren Es ist auch m glich das Objekt direkt im Design Fenster oder im Inspektor Fenster per Rechtsklick Edit Text zu editieren Das Navigator Fenster dient der bersicht und Verwaltung der hierarchischen Anordnung der Objekte Es ist auch von 5 Form gui DEN Other Components hier aus m glich neue Objekte und Events 5 7 Bd zu erstellen oder auch die Properties zu 3 pansi Panel editieren Die Positionierung der Objekte 3 U Fane2 Panel muss jedoch im Design Fenster unternommen werden _ jPanel3 Panel GM jToggeButton1 TToggleButton Abb 51 Navigator Fenster 94 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 12 3 EventHandler Auch die schonste graphische Benutzeroberflache ist nutzlos falls diese keine Funktionalitaten Bedienung besitzt Hier kommt der EventHandler deutsch Event Verwalter welches fur die Funktionalitat Eingabe per Tastatur oder Mausklicks einer GUI sorgt Ein Event kann jedem Objekt uber Rechtsklick gt Events gt und Event nach Auswahl wahlen zugew
38. Typen in Netbeans haben gemeinsam dass sie folgende Aktionen ausf hren k nnen e das gesamte Programm anhalten 58 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik e nur den Thread anhalten in dem sie ausgef hrt werden e das Programm einfach weiterlaufen lassen e Text ausgeben Breakpoints k nnen Bedingungen enthalten die ihre Ausf hrung steuern Diese Bedingungen k nnen sich auf Variablen des aktuellen Kontext beziehen oder auf die H ufigkeit ihres Aufrufes Je nach Breakpoint Typ Wenn man z B ein Indexfehler hat der erst beim 99 Durchlauf einer Schleife passiert kann man den Breakpoint das Programm nach dem 98 Durchlauf anhalten lassen und dann Schritt f r Schritt durch gehen um den Fehler zu finden 8 3 3 Platzhalter f r Textausgabe Bei der Textausgabe gibt es die M glichkeit Platzhalter in den Text einzuf gen die dann bei der Ausgabe ersetzt werden Ein paar will ich hier einmal vorstellen e x Wird durch den Wert der Variable x im aktuellen Kontext ersetzt e lineNumber Wird durch die Zeilennummer in der sich der Breakpoint befindet ersetzt e className Wird durch den Klassennamen ersetzt e threadName Wird durch den Threadnamen ersetzt e exceptionClassName Wird durch den Klassennamen der geschmissenen Exception ersetzt e exceptionMessage Wird durch den Text der geschmissenen Exception ersetzt 8 3 4 Beispiel int sum 0 for int i20 i 37 41 T
39. Weise ist es m glich ber ein JSP Dokument auch Binardaten wie Bilder oder T ne zu erzeugen und an den Client zu senden Direktiven Eine Direktive dient zum bermitteln spezieller Seiteninformationen an den JSP Compiler dadurch kann man angeben ob die JSP eine Tag Library kurz Taglib einbindet oder wie im Fehlerfall weiter zu verfahren ist Die allgemeine Syntax f r eine Direktive ist lt gt Folgende Direktiven mit den am weitesten verbreiteten Attributen sind vorhanden Include weist den JSP Compiler an den vollst ndigen Inhalt einer externen Datei in die Originaldatei zu kopieren Diese Einbettung geschieht zur Translation Time also statisch einmalig mit der Ubersetzung der JSP in ein Servlet lt include file BeispielDatei ext 96 Page import generiert ein Java Import Statement in der Datei lt page import java util 96 contentType gibt die Art des Datei Inhaltes an Sollte dann eingesetzt werden wenn man kein HTML benutzt oder nicht den voreingestellten Zeichensatz verwendet lt page contentTypez text html 96 errorPage gibt die Seite an die im Fehlerfall angezeigt werden soll lt page errorPage ErrorHandler jsp 96 136 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik isErrorPage gibt an ob diese Seite eine Error Page ist oder nicht wenn ja ist das exception Objekt verfugbar lt page isErrorPage false gt lt die Seite ist keine Error Page
40. anderes in eine Logdatei um Aktionsmeldungen Fehlermeldungen und Hinweise persistent dauernd verf gbar zu halten Ahnliches gilt f r Installations Programme Virenscanner und dergleichen Logdateien werden auch von Webservern erstellt k nnen aber auch au erhalb des Internets bei Untersuchungen der Benutzerfreundlichkeit von Programmen oder allgemeinem Nutzerverhalten in einem System genutzt werden Aufbau einer Log Datei WindowsUpdate log 2010 09 18 16 26 07 645 964 1070 Zeitstempel PID TID DnldMgr Update is not allowed to download due to regulation Komponente Beschreibung Webserver 183 121 143 382 Peter ib 18 Mar 2003 08 04 22 0200 Host Adr Benutzer Passw Zeitstempel GET images logo jpg HTTP 1 1 200 512 Anforderung Status Gr e der Daten http www wikipedia org Mozilla 5 0 X11 U Linux i686 de DE rv 1 7 5 Internetseite Browser Betriebssystem Oberfl che 5 2 Properties Datei Eine Java Properties Datei ist eine Textdatei die in der Programmiersprache Java als einfacher Konfigurationsmechanismus verwendet wird Eine Property deutsch Eigenschaft ist in diesem Zusammenhang ein Text der unter einem bestimmten Namen abgelegt ist Java Properties Dateien haben blicherweise die Dateiendung properties Die Datei enth lt Key Value Paare vom Typ String Properties sind abgeleitet von Hashtable Das folgende Beispiel zeigt einen Ausschnitt aus einer ein
41. auf den Server und den Punkt Connect wahlen Projects P Services disconnected 2 E Java DE II Drivers Sch i web Service Des Servers Connect ac Hudson Buil Team Serve Delete t Issue Tracks Run Administration Tool Properties Jetzt ist auch die Verbindung zu dem Server aufgebaut 15 3 Datenbank erstellen und bearbeiten Um eine Datenbank zu erstellen gehe man wie folgt vor e Netbeans starten und links das Fenster Services aussuchen 114 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik e Rechtsklick auf den Server und den Punkt Create Database w hlen NetBeans IDE 6 9 1 File Edit View Mavigate Source Refactor Run Debug Profi e EEN Ee EZ config Projects Ir Files Services El E Databases Eee Bava DB Start Servet ee 527 sample app on APP p T i SAREE g E SE SE P i dn Hudsan Builders g E Team Servers E Issue Trackers e Die Felder ausf hlen Create Java DB Database Database Mame newDBapp User Name test Password Confirm Password Database Location Ci Dokumente und Einstellungen alex netbeans derby e Klicke auf OK gt Eine leere Datenbank ist jetzt angelegt Properties Cancel Um die Datenbank zu bearbeiten muss man sich erst mit dieser Datenbank verbinden indem man auf die
42. basic application infrastructure such e as a menu bar persisting of window state and status bar With this template you PR S can also generate code to create a GUI interface for a database table Finish Cancel Help Da aber die JSR 296 nicht mehr weiter entwickelt wird erscheint seit Netbeans 6 9 folgender Disclaimer T New Praject WE x Steps Disclaimer 1 choose Project 2 Disclaimer 3 Mame and Location Note that JER 286 Swing Application Framework is na longer developed and will not become part of the official Java Development Kit as was originally planned You can still use the Swing Application Framework library as it is but na further development is expected If vou are looking for a Swing based application framework consider using the NetBeans Platform platfor m netbeans org which is a full featured platform suitable IE for creating complex and scalable desktop applications The Platform contains APIs c i eU Ge of windows actions files and many other typical EN d op application elements Back wet Finish Cancel Help Hier wird bereits auf Rich Client Entwicklung hingewiesen was allerdings aufgrund des Umfangs nicht Gegenstand des Seminars war Im n chsten Schritt stellt der Wizard dann 2 M glichkeiten zur Verf gung 102 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik New Desktop Application EV x Steps Name and Location 1 Choos
43. boolean boolean boolean String javax sv O 027ms 0 1 D syncfiles DirectorySyncVisitor closeZip 0 004 ms 096 1 AWT EventQueue 0 ees 91 6 ms 100 1 Hot Sp ots G esamte Y syncfiles SyncFilesview sync Kee 89 0 ms 37 236 1 A u sf u h run g sze It un d A nza h 9 syncfiles SyncFilesView initAnalyseSync boolean Lee 88 9 ms 97 1 1 Self time z 83 5 ms 91 2 1 d e r A u f r u f e e In e r M et h od e syncfiles SyncFilesapp getApplication 0 010 ms 0 1 i syncfiles SyncFilesview ThreadAnaylseSync lt init gt syncfiles SyncFilesview 0 009 ms 0 1 werden angezeigt egal in Sef tine 0 082 ms 0 1 H syncfiles SyncFilesview stoppJobs 2 60 ms 2 8 1 welchem Kontext sie ausgef hrt wurden 2 one E HotSpots ie Combined Om 0000000000000 0 Combined Im oberen Teil wird der Call Tree angezeigt und im unteren Teil die Hot Spots Info Informationen Uber das Erstellungsdatum Speicherort und Uberprufungsart 9 3 11 Memory Snapshot Der Memory Snapshot sammelt Daten Uber die Reservierung und Lebensdauer von Objekten Memory Results In diesem Fenster wird eine Liste von Klassen mit dazugeh rigen Statistiken ber die Gr e und Anzahl der Instanzen die w hrend des Snapshots reserviert waren angezeigt Allocated Objectes Anzahl aller Objekte die der Profiler zur Zeit berwacht In der Regel ist dies ca 10 von der wirklichen Anzahl aller Objekte Dadurch dass nicht alles
44. dazu idealerweise die selbe Verzeichnisstruktur wie im Verzeichnis src auf Somit kann Maven auch automatisch alles von alleine finden und zuordnen Hierzu muss nicht gesondert das Goal test aufgerufen werden Dies ist nur zum ausf hren der Tests ohne Packen der Anwendung Realisiert und konfiguriert wird dies durch das Surfire plugin welches standardm ig in Maven enthalten ist Dieses generiert auch Protokolle im Anschluss an die Tests wo die Ergebnisse dieser nachgelesen werden k nnen Zu finden sind diese anschlie end im Verzeichnis base dir target surfire reports Die Besonderheit an diesem Plugin ist dass wenn ein Test fehl schlagt das komplette Projekt nicht gebaut wird und der Buildvorgang nach Beendigung aller Testcases mit einem BUILD FAILURE abgebrochen wird Tests run 2 Failures 0 Errors 6 Skipped 8 Time elapsed 0 852 sec Running de hsnr seminar dao jpa TestEventDaoJPA Tests run 5 Failures Errors 5 Skipped 6 Time elapsed 0 059 sec lt lt lt FAILURE Results Tests in error testFindAll de hsnr seminar dao jpa TestEventDaoJPA testCountAll de hsnr seminar dao jpa TestEventDaoJPA testDelete de hsnr seminar dao jpa TestEventDaoJPA testLoad de hsnr seminar dao jpa TestEventDaoJRA testSave de hsnr seminar dao jpa TestEventDaoJPA Tests run 7 Failures 8 Errors 5 Skipped 8 INFO ERROR BUILD FAILURE 1 INFO There are test failures se refer to hom
45. der Objekte Es k nnten die Selbigen Objekte sein aber mit unterschiedlichen Inhalt assertSame Sie sind gleich Erwarteter Wert Aktueller Wert e assertNotSame Object unexpected Object actual Pr ft auf die Ungleichheit der Objekte assertNotSame Sie sind ungleich Erwarteter Wert Aktueller Wert e assertThat T actual Matcher lt T gt matcher Mithilfe eines Matchers kann man hier auch auf Gleichheit prufen assertThat list size is 10 assertThat list hasltems a b c 7 4 Annotationen Es gibt eine Vielzahl von Annotationen unter Java und auch einige f r JUnit Einige werden wir hier nun kennen lernen e Test Steht ein OQ Test vor einer Methode ist diese eine Test Methode Es musst sonst nichts abgeleitet werden Es ist m glich Test einen Ubergabeparameter zu Ubergeben Zum Beispiel kann die erwartete Exception angegeben werden e Test expected NullPointerException class Der Test l uft nur korrekt durch wenn genau die angegebene Exception ausgeworfen wird Bei keiner oder einer anderen Exception zeigt der Testfall einen Fehler an Vor und Nachbereiter einer Methode e Before Methoden mit Before Annotation werden vor jedem Test ausgef hrt e After Methoden mit After Annotation werden nach jedem Test ausgef hrt Dasselbe gibt es auch f r Klassen e BeforeClass e AfterClass Weitere e lgnore Die Testmethode wird bersprungen e Timeout Die Testmethode wird nach ei
46. ein Mitarbeiter kann in einem anderen Land sitzen oder ein Teil des Quellcodes kann schon vor einem Jahr geschrieben worden sein werden pers nliche Absprachen und Erkl rungen schwierig Somit ist zus tzliche Dokumentation erforderlich Die Dokumentation erleichtert eine Wiederverwendung von Klassen und Paketen da anhand der Dokumentation schneller ausgemacht werden kann ob eine ben tigte Funktionalitat schon zur Verf gung steht oder in einem anderen Projekt bereits enthalten ist Auch wird das Prinzip der Datenkapselung unterst tzt da eine Dokumentation die Schnittstelle spezifiziert So hat man einen Leitfaden dem bei der Implementation gefolgt werden muss oomit werden auch nachtr gliche Anderungen erleichtert Dokumentation ist auBerdem eine wichtige Programmierrichtlinie deren Einhaltung die Qualitat einer Software erh ht 11 1 4 Beispiele e Die OpenCV Dokumentation http opencv willowgarage com documentation index html e Die Dokumentation der Java API http download oracle com javase 6 docs api index html 85 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Java Platform D Standard Ed 6 Package Class Use Tree Deprecated Index Help Java Platform s PREV NEXT FRAMES NO FRAMES Standard Ed 6 All Classes en Packages Java Platform Standard Edition 6 java applet e e m ngen API Specification e i This document is the API specification for version 6 of th
47. engl Beh lter In diesem werden die verschiedenen Projekte einer Firma gespeichert und k nnen von den einzelnen Anwendern den Clients heruntergeladen werden Optional k nnen die einzelnen Projekte durch Passw rter gesch tzt werden womit Fremdzugriff z B einer anderen Abteilung vermieden werden kann Die Client Server Anwendung kann man sich in den folgenden Abbildungen naher ansehen CVS Server Client 1 Client 2 Abb 30 Client Server Anwendung Repository Proiekt 2 p Projekt 1 Projekt 3 Abb 31 CVS Server 74 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Wie in Abbildung 1 zu erkennen ist handelt es sich beim CVS Server um einen zentralen von jedem Client zug nglichen Server Auf diesen kann jeder mit Einschr nkung des Passwortschutzes zugreifen und sich seine Projekte lokal speichern wie in Abbildung 2 zu sehen ist Das Repository legt auf dem Server pro Projekt ein Verzeichnis ab indem alle Dateien und die allgemeinen Konfigurationsparameter hinterlegt sind Zusatzlich werden noch die folgenden Informationen f r das Projekt bzw die einzelnen Dateien des Projektes festgelegt e Unterschiede zu den vorherigen Versionen e Anderungszeitounkt e Kommentare und Benutzername des Clients e Versionsnummer Im Folgenden wird der Zugriff auf das CVS System erl utert Beginnend dazu ist ein Beispiel aufgef hrt die den typischen Ablauf eines Imports m
48. erzeugt eine neue JavaFX Anwendung in einem Standard Projekt der IDE Standard Projekte nutzen ein von der IDE erzeugtes Ant Skript zum Erstellen und Ausf hren der Projekte A Help Next Cancel Categorie JavaFX gt gt gt Projects JavaFX Scriptanwendung gt gt gt Next 161 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik New JavaFX Skriptanwendung Steps Name und Pfad 1 Choose Project Malin WAHAN 5 Mame und Mad Projektname Hello World Projektpfad Users tobias NetBeansProjects Durchsuchen Projektverzeichnis user tobias NetBeansProjects Hello World Leeres Projekt 3 Von Quellen v Als Hauptprojekt festlegen V Hauptdatei erstellen helloworld Main Help lt Back Finish Cancel Projektname Hello World gt gt gt Finish Das Projekt sieht nun wie folgt aus F Hello World r LH Source Packages CH helloworld FP Main fx 8 Bibliotheken JavaFX SDK auf Java 1 6 import javafx stage Stage import javafx scene Scene import javafx scene text Text import javafx scene text Font Stage title Application title scene Scene width 250 height 80 content Text font Font size 16 x 10 y 30 content ADpiication Content H H Stage ist das Grundger st fur JavaFX Script Scene beschreibt die Arbeitsumgebung wo man Objekte Text buttons usw platzieren kann Text ist
49. ig wird ein HTML Doclet verwendet Es k nnen jedoch zus tzliche Doclets installiert werden f r andere Ausgabeformate wie zum Beispiel XML oder PDF 11 5 Was leistet Javadoc nicht Javadoc ist nicht geeignet f r das Erstellen einer Dokumentation der Benutzerschnittstelle siehe 1 2 Somit ist eine Javadoc Dokumentation ausschlie lich f r Programmierer von Bedeutung und f r den Anwender einer Software nutzlos bzw unsichtbar Au erdem ist Javadoc nicht geeignet f r den Entwurf von Software Denn Software wird vor dem programmieren entworfen und Javadoc dokumentiert die Software nach bzw w hrend des Programmierens F r den Entwurf w ren zum Beispiel UML Diagramme besser geeignet 11 6 Quellen Ullenboom Christian Java ist auch eine Insel 8 Auflage Galileo Computing 2009 http de wikipedia org wiki Javadoc November 2010 http de wikipedia org wiki Softwaredokumentation November 2010 http www imn htwk leipzig de weicker pmwiki pmwiki php Main Javadoc November 2010 89 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 12 NetBeans GUI Editor Artur Schmidt 06 12 2010 12 1 Einleitung Das Graphical User Interface kurz GUI deutsch graphische Benutzeroberflache ist bei heutigen ooftware Anwendungen Standard und ist nicht mehr weg zu denken Da GUI graphische Fenster FotoSorter EIB Datei Info Neuer Name Startindex 1 Jahre 0 Monate 0 Tage 0 Stunden 0 Minuten
50. im Quellcode Variablen Methoden Klassen usw naher zu beschreiben Javadoc parst diese Tags und erstellt daraus eine Dokumentation Diese Dokumentation wird standardm ig im HTML Format erstellt 86 168 Wintersemester 2010 2011 Javadoc Kommentar Pd Seminar an der FH Niederrhein FB Informatik public static int addiere int summandl int summand2 return summandl Javadoc Kommentare m ssen mit beginnen und unmittelbar vor dem betreffenden Element eingef gt werden Tags beginnen mit oder mit Folgend ein Auszug der existierenden Tags 11 3 1 Tags Auszug author Name Gibt Autor des Programms an version Nr Gibt Version eines Programms oder Klasse an see Element Erzeugt Link auf anderes Element param Name Beschreibung Parameterbeschreibung Methode return Beschreibung Beschreibung R ckgabewert einer Methode exception Exception Beschreibung Beschreibung einer Exception die von einer Methode geworfen werden kann deprecated Deklariert Methode als veraltet sollte nicht mehr benutzt werden literal Unterdruckt Interpretierung von Tags innerhalb der Klammern code Wie literal nur dass Quellcodezeichensatz verwendet wird inheritDoc Kopiert Beschreibung der uberschriebenen Methode 11 3 2 Dokumentation erstellen Wird eine Dokumentation mit Javadoc erstellt werden mehrere Dat
51. ist eine sehr m chtiges Framework f r die RIA Programmierung mit vielen Schw chen Die Geschwindigkeit ist dabei das gr te Problem von JavaFX Dadurch konnte JavaFX nie wirklich Fu fassen in der Welt der Browser Obwohl das Framework den Ubergang zwischen Web Apps und Desktop Apps nahezu perfekt meistert wird es sehr selten genutzt Dazu kommt auch noch das Oracle JavaFX1 3 lange schleifen gelassen hat und dieses nun komplett berarbeitet und damit einen Neustart versucht Dieses hat zu folge das JavaFX vielleicht wieder in dem Markt mitkampfen kann und es zu einer sehr attraktiven Umgebung zum entwickeln von Web und Desktop Apps wird Im Moment kann man nur ganz klar sagen das Adobe s Flash st rker und weiter verbreitet ist und es f r JavaFX mit HTML5 nicht einfacher wird 20 7 Tutorials die auf dieses Thema aufbauen http download oracle com javafx index html http www cppij com JavaFX javafx htm http fx wikia com wiki Tutorials 20 8 Quellen http download oracle com javafx index html http www heise de http www wikipedia org http www javafx com 164 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 21 Ver nderungen am Programm Fotosorter Paul Bernasch Begleitend zum Seminar wurde ein Beispielprogramm verbessert Nachdem der Code in 3 Klassen aufgeteilt wurde gem des erstellten UML Diagramms wurden noch weitere Verbesserungen mit Netbeans vorgenommen 21 1 1 Verein
52. kurz erg nzende Hinweise erfolgen um das Framework etwas besser verstehen zu k nnen 14 3 Erl uterungen zum erzeugten Code Code des Hauptprogramms package desktopapplication1 import org jdesktop application Application import org jdesktop application SingleFrame Application public class DesktopApplicationl extends SingleFrame Application Override protected void startup show new DesktopApplicationl View this j public static DesktopApplicationl getApplication return Application getInstance DesktopApplicationl class public static void main String args launch DesktopApplication1 class args Code der View Klasse Der Konstructor public DesktopApplication 1 View SingleFrameApplication app super app initComponents ResourceMap resourceMap getResourceMap Startet das GUI und bergibt als Referenz ein Appllication Objekt Liefert die Application Referenz als Singleton Instance jederzeit otartet das Programm und k mmert sich um den EDT Kennen wir von jedem JFrame welches uns Netbeans erzeugt ResoureMap besorgen Zeitwert holen 104 168 Wintersemester 2010 2011 int messageTimeout resourceMap getInteger StatusBar message Timeout messageTimer new Timer messageTimeout new ActionListener public void actionPerformed ActionEvent e statusMessageLabel setText j messageTimer setRepeats false int busyAnimationRate
53. lib logging properties zentral f r die ganze JRE konfiguriert Diese Datei findet nur Anwendung wenn keine der beiden Java System Eigenschaften zur Konfiguration auf Applikations Ebene gesetzt wurde Sie definiert globale Einstellungen Eigene Konfigurationen kann man entweder mit der config class setzen oder durch eine separate config file 5 3 4 Konfiguration via java util logging config class Ist diese System Eigenschaft gesetzt wird der Wert als Klassenname interpretiert Diese Klasse wird dann vom Framework instanziiert Im Konstruktor kann das Framework konfiguriert werden 01 public class ConfigLogging 02 03 04 public ConfigLogging throws Exception 05 06 Properties erstellen 07 08 Properties loggingProperties new Properties 09 10 Root Logger Loglevel 11 loggingProperties put level ALL 12 Root Logger Handler spezifizieren 13 loggingProperties put handlers 14 Java util logging ConsoleHandler 15 java util logging FileHandler 16 17 Konfiguration des ConsoleHandlers 18 loggingProperties put java util logging ConsoleHandler formatter 19 jJava util logging SimpleFormatter 20 Auf der Konsole sollen nur schwerwiegende Fehler ausgegeben werden 21 loggingProperties put java util logging ConsoleHandler level 2o SEVERE B 24 Konfiguration des FileHandlers VAS loggingProperties put java util logging FileHandler pattern 26 Slh logging tlyingrobl
54. lokale Kopie auf dem Repository hochladen will ist noch alles in Ordnung oobald aber der zweite Client im Anschluss seine Version mit der Version auf dem Repository abgleicht stellt er Unterschiede in der Versionierung sowie beim Quellcode fest Anderungen die von Client 1 gemacht wurden waren in der Ausgangsdatei von Client 2 noch nicht vorhanden und f hren somit zu einem Konflikt der manuell vom Benutzer behoben werden muss Was hieran auffallt ist dass der Vergleich beim zweiten Update von Client 2 mit der aktualisierten Version von Client 1 erfolgt Die Unterschiede zweier Versionen k nnen mittels des Diff Befehls festgestellt werden und in den verschiedenen Applets gibt es Tools die solche Konflikte l sen Zu einem sp teren Zeitpunkt wird dabei im Abschnitt CVS in Netbeans n her drauf eingegangen Client 1 Repository Client 2 Bear beitung Checkout Checkout Update OK gt Commit clamor S Vergleich Abb 38 Import und Checkout zwischen zwei Clients und dem Repository 76 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 10 2 Das ist CVS nicht Im ersten Abschnitt haben wir uns damit beschaftigt was CVS eigentlich ist und alles kann Nun kommen wir dazu was CVS nicht kann und wozu es nicht dient oder wozu die Funktionen schlichtweg nicht ausreichen Denn zum Einen erleichtert es die Teamarbeit an einem Projekt doch zum Anderen gibt es bestimmte Dinge di
55. man erstellt direkt f r JavaFX anpasst Man kann mit Java FX daher sehr einfach einen Media Player in seine Homepage einbinden ohne viel daf r k nnen zu m ssen oder einfach sehr sch ne Men s mit sich bewegenden Objekten erstellen Diese Apps k nnen auch mit dem Webserver kommunizieren Ein Einfaches Spiel zu entwickeln ist mit JavaFX ebenso kein Problem 20 3 Warum nicht JavaFX JavaFX hat mit mehreren Problemen zu k mpfen Das Framework l uft in einer Java Virtual Machine sehr langsam Das merkt der Benutzer besonders stark bei Apps auf einer Homepage wenn neben einer langeren Ladezeit der Inhalte die JVM auch noch mal deutliche Ladezeiten hat Ausserdem muss der Benutzer das Ausf hren von Apps bestatigen Viele Benutzer die auf Sicherheit beim PC bedacht sind dr cken daher auf nein Man kann sich nie sicher sein was die Java App wirklich auf dem eigenen Rechner macht da man ihr nur alle Rechte oder gar keine Rechte geben kann Keine Rechte bedeutet gleichzeitig auch kein Ausf hren der JavaFX App Flash ist da aktuell deutlich im Vorteil und viel Komfortabler f r den Benutzer Aber nicht nur Flash macht es besser immer mehr Anbieter setzen in naher Zukunft auf HTML5 welches Flash den Rang ablaufen k nnte Damit hat JavaFX im Bereich Multimedia 2 berm chtige Konkurrenten Das ist aber nicht das einzige Problem von JavaFX iJavaFX wurde besonders viel Wert drauf gelegt das es auf m glichst vielen Endger ten lauft PC TV Ha
56. n 3 u K 2 lauten Das erwartete Ergebnis sollte 3 0 sein 41 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik public class Main public static double binomialkoceffizent int mint K 1 THE Es deubie binko i if k gt n binko O else if k 0 k n L binko 1 else binko binko n R 1 1 k rerurn binke public static void main 5tring args int n k doubie binomia l n 3 k 2 binomial binomialkKosffIIszent aystem cgut printin Erzgebn ur ana oer a4k4 Abignomial iti binomial Ze 3 0 1 System osut printlni Bas Ergebnis ist falsecn Syaten cub printin Dar Ergebnis ist ricatig j a Die Konsole Ausgabe Output Referat Beispieli run ES Eur Ergebnis f r 3 ber 2 1 5 P ns Ergebnis ist falsch 2 BUILD SUCCESSFUL total time 0 seconds EL SC Wie wir sehen sagt uns das Programm das unser Test nicht erfolgreich war Dies zeigt uns aber eine wichtige Eigenschaft von dynamischen Tests auf Ein dynamischer Test berpr ft seine Richtigkeit selber In unserem Programm ist also ein Fehler in der Berechnung aufgetreten Das hei t unsere Formel zum Berechnen des Binomialkoeffizienten ist falsch Die richtige Formel lautet also else binko binko n k 1 41 sik Dann verl uft der Test auch erfolgreich wie man anhand der Konsolenausgabe zu sehen ist 42 168 Winters
57. nnen hier die Tomcat eigenen Sachen ausgeschaltet werden sodass nur die eigene Anwendung gepr ft wird 9 3 8 VM Telemetry Overview Wird immer angezeigt wenn wir Monitoring Application ausgew hlt haben Ansonsten man es Uber Profiler View Telemetry Overview dazuschalten kann Auf der Linken Seite sehen wir in rot den reservierten Speicher des Heaps Das Lila zeigt den aktuell genutzen Speicher des Heaps an Rechts wird die Anzahl der aktiven Thre angezeigt In der Mitte sehen wir zwei wichtige Heap Statistiken ads Die blaue Linie zeigt die Zeit an die der Garbage Collector ben tigt In dieser Zeit kann unsere Anwendung nicht weiter ausgef hrt werden Wenn dies einen zu hohen Anteil annimmt sollte man den Heap erweitern Xmx parameter Die Rote Linie zeigt die berlebenden Generationen Die Anzahl der berlebenden Generationen ist die Anzahl der verschiedenen alter aller Java Objekte auf dem Heap ein Objekt einen Garbage Collector Zyklus berlebt hat wird das Alter um eins erh ht die Anzahl der Generationen hoch ist bzw st ndig steigt dann werden immer wieder Objekte erzeugt und Speicherplatz reserviert obwohl noch Platz f r die alten Objekte reserviert ist Dies ist Verschwendung von Speicherplatz also ein Memory Leak Wenn Wenn neue 70 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik VM Telemetry Overview Profiling bois OO Profiling bois OO Search Re
58. org current Local Remote ee g S stwww www kb 60 ide sre orc lHarclassjava Locally Modified e stwwwiwww kb 6O0 ide sre ore YourClassjava__LocallyNew e stwww www kb 6O0 ide sre orc yCle E Locally Deleted testwww wwwy kb 6 Ofide src orc Abb P Liste Datei nderungen Die einzelnen Symbole bedeuten von links nach rechts e Aktualisierung aller aufgelisteter Dateien e Gegenuberstellung lokale Version lt gt Version auf Repository e Update aller lokalen Dateien vom Repository ausgehend e Commit aller lokalen Dateien auf das Repository Gerade angesprochen ist auf folgender Abbildung zu sehen wie ein Commit Fenster aussieht 79 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik m Commit ide Commit Message Li content added for Resolving Conflicts validation cleanup performed Files to Commit mysal webapp html Locally New Add as Text estwww www kb 60 ide derby demo html Locally New Add as Text testwwwiwww kbj60jide mysalhtml LecallyModfied commit Abb 37 Commit In den letzten beiden Abbildungen wird zum Einen gezeigt wie das Diff Vergleichsfenster die lokale Version und die Version auf dem Repository gegen berstellt und zum Anderen wie bei einem Konflikt vom CVS vorgegangen wird Der Abgleich bei einem Konflikt muss dabei manuell erfolgen Main java Dat d d i KK amp 0 Base BASE 374 Locally Modif
59. resourceMap getInteger StatusBar busyAnimationRate for int 1 0 1 lt busylcons length i busylconsl i resourceMap getIcon StatusBar busyIcons 1 j busylIconTimer new Timer busyAnimationRate new ActionListener public void actionPerformed ActionEvent e busyIconIndex busyIconIndex 1 busyIcons length status nimationLabel setIcon busyIcons busyIconIndex j Ir idleIcon resourceMap getIcon StatusBar idlelcon statusAnimationLabel setIcon idleIcon progressBar setVisible false TaskMonitor taskMonitor new TaskMonitor getApplication getContext taskMonitor addPropertyChangeListener new java beans PropertyChangeListener public void propertyChange java beans PropertyChangeEvent evt String propertyName evt getPropertyName if started equals propertyName if busyIconTimer isRunning status nimationLabel setIcon busyIcons 0 busyIconIndex 0 busylconTimer start progressBar setV isible true progressBar setIndeterminate true else if done equals propertyName busylconTimer stop statusAnimationLabel setIcon idleIcon progressBar setVisible false progressBar setV alue 0 else if message equals propertyName String text String evt getNew Value statusMessageLabel setText text null text messageTimer restart else if progress equals propertyName int value Integer evt getNew Value progressBa
60. t to to to to ta meng Be 0 O O o O o O o o O O o jo O O jo o O TIK IK IR IR IH IH IH IRIB IK IK S MJK IH H IS In D ct ict fet fet fet ict fet ict et ict et et et et et fet et ct N vim m m Im Im Im Im Im m m m Im In In In In In Im s OIK IR IR IR IR IR IH IH IH IH IH IH IH JH IH H IH IR p H le m le E Oo tet b m is m fp p IB H Di Sis d ta Sic Sg m p lo N ph b Ip D o aud ct ico Di Q Un ct jet m D m im ct H Ir 4 x Ix m z v ct jet mx m O cd ri amp ct a m ct M E O ct ct d m ct A al x H et Hi IK Ui Comment fotosort FotoSorter R Auto Resize Value Problem mit der Log Property Datei m FotoSorter run running jf Gi 10138 me 168 168
61. uns dann von JUnit einen Test entwerfen 7 2 Unser Beispiel ein Bank Account 12 public class bankAccount 13 14 private int geld 15 private String besitzer 16 17 public bankA ccounti 1 18 15 20 public bankAccount int geld String besitzer 24 25 public void setBesitzer String besitzer 28 28 public void setGeld int geld 32 33 public String getBesitzer 36 37 public int getGeld 40 41 public void einzahlen int x throws Exception 47 45 public void abbuchen int x throws Exception D 47 H Ein einfacher Bank Account mit Geld Besitzer sowie passenden Set und Get Methoden und die Methoden einzahlen und abbuchen Auf die Set und Get Methoden werden wir nicht weiter drauf eingehen Interessant sind die Methoden einzahlen und abbuchen diese sehen wir uns mal genauer an 47 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 41 public void einzahlen int x throws Exception 42 if x 0 43 throw new Exception Negativer Wert r 44 45 geld x 46 47 45 public void abbuchen int x throws Exception 49 if x 0 50 throw new Exceprion Negativer Wert 51 it geld lt x 52 throw new Exception Sie haben nicht genug Geld p3 54 geld x Dg Beim Einzahlen von Geld m ssen wir einen negativen Betrag abfangen und schmei en dann eine Exception Wenn wir Geld abbuchen wollen m ssen wir ebenfalls einen negativen Betrag abfa
62. verschiedenen Assert Befehle sind hier ohne Bedeutung Wir haben lediglich Variable testzahl welche in unserer Test Klasse deklariert wird Wir erstellen in unserer Test Methode einen neuen Bankaccount mit dem Kontostand testzahl und buchen danach unseren Betrag testzahl wieder ab Das kann man nun mit X vielen Werten machen Nun erstellen wir uns eine Liste an Testwerten Dazu brauche wir erst einmal folgende Packages 8 import java util Arrays B import java util Collection 10 import org Junit runners Parameterized 11 import org junit runner RunWith Zuletzt ver ndern wir unsere Test Klasse 54 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 21 RunWith Parameterized class 22 public class bankAccountTest 23 24 private int testzahl 25 26 public bankAccountTest int val i a this testzahl val 28 29 30 32 33 34 GParameterized Parameters 35 public static Collection lt Ob ject gt data ft 36 Object data new Object i i 100 ze 1 200 ie 1 1232542 rr 37 return A rrays asList data 38 39 Wir sehen schon dass such nun einiges ver ndert hat aber mehr ver ndert sich auch nicht bei unserem Test Vor der Test Klasse steht nun RunWith Parameterized class das unserer Klasse die Information gibt dass wir mit einer Parameterliste arbeiten m chten Die angek ndigte Variable testzahl findet man nun auch Dazu kommt ein neuer S
63. wie jeder anderer Element zu der Form hin gef gt werden 4 Da jetzt unsere Klasse wie normaler GUI Element verh lt k nnen wir diesen Element mit jedem anderen Standard GUI Element verbinden Quellen http de wikipedia org wiki Netbeans http de wikipedia org wiki JavaBeans http download oracle com javase tutorial javabeans TOC html http wiki netbeans org CreatinglmageBeanUsingNetBeans6 1 http netbeans org kb docs java gui binding html http openbook galileocomputing de javainsel8 javainsel_ 07 004 htm http hetbeans org download flash netbeans 6 gui builder netbeans 6 gui builder html 101 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 14 Java Desktop Application F r die Erstellung von kleineren Anwendungen wurde in den letzen Jahren das Java Framework JSR 296 entwickelt Dieses Framework wird voll von Netbeans unterst tzt und soll deshalb hier auch kurz vorgestellt werden 14 1 Einleitung Der Wizard f r neue Projekte erm glicht die Erstellung von Java Desktop Applications T New Project i x Steps Choose Project 1 Choose Project Categories Projects d S Java Application Cen Java Desktop Application i NetBeans Modules Sp Java Class Library E 3 Samples E Java Project with Existing Sources Ja Java Free Form Project Description Creates a skeleton of a desktop application based on the Swing Application Framework OSR 296 This template provides
64. 0 110 000 Height is Lower Edge Mot HEIGHT IS LOWER EDGE v Channels ICHAMMELS Antenna Type ARMTENMA TYPE Polarization POLARIZATION El esas From Mee ER AER ER CM EMHrT Frenuencu From MH ER examples Antenna Links sind die Hard Coded Strings in der Mitte die Keys und rechts die Values 16 2 3 Internationalisierung einzelner Formen Wie wir bis jetzt ganze Dateien oder auch ganze Projekte editiert haben k nnen wir nat rlich auch einzelne Strings Formen andern Dazu klickt man doppelt auf die zu bearbeitende Datei und geht dann wieder auf Tools gt Internationalization gt Internationalize dann erhalt man z B das folgende Fenster E Internationalize Bundle Name examples Find Kev value Comment java util ResourceBundle getBundlel examples Find getsStringt FIND Unter Key kann man nun den Schlussel aussuchen dem man einen neuen Wert zuweisen m chte und ein m gliches Kommentar hinzuf gen welche bei einer sp teren Bearbeitung oder bei einer Bearbeitung durch andere Personen hilfreich sein kann 16 3 Noch zwei zusammenfassende Satze Internationalisierung Die Internationalisierung eines Programms bedeutet dass es so entwickelt und vorbereitet wurde dass es unter beliebig vielen Sprachen arbeitet Lokalisierung Die Lokalisierung ist der Prozess des Anpassens auf eine bestimmte neue oprache 132 168 Wintersemester 2010 2011 Seminar a
65. 296 This template provides basic application infrastructure such as a menu bar persisting of window state and status bar With this template you can also generate code to create a GUI interface Far a database table Cancel Jetzt geben wir den Namen des Projektes an und w hlen Database Application New Desktop Application Steps Name and Location Choose Project Disclaimer Name and Location Master Table Detail Options Project Mame TestDBapp Project Location e und Einstellungen Alex Eigene Dateien NetBeansPrajects Browse Project Folder ellungeri lexiEigene Dateien NetBeansProjects TestDBapp Application Class testdbapp TeskDBapp pp Choose Application Shell Basic Application simple CRUD create read update and delete database Database Application application with a master detail view in Ehe main Frame This application shell also contains all of the Features of the Basic application shell Proceed to the next steps to select the database and configure Use Dedicated Folder For Storing Libraries sl i jj Hranrsrar leader ei Les U nA F Different users and projects can share the same compilation libraries see Help For details Set as Main Project Cancel Im folgenden Fenster suchen wir uns die benotigte Datenbank aus und wahlen die Tabelle die wir in unserem Projekt brauchen Wobei wir einzelne Spalten weglassen k nnen 121 1
66. 68 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik New Desktop Application Steps Master Table Choose Project uM ee ek ee E Disclaimer Database Connection W lzer ct TITO B Teu Exc Reeg Mame and Location SE Master Table Database Table AUTO Detail Options Available Columns Columns bo Include ID MARKE ORT PREIS Jetzt wahlen wir das Format der Ausgabe aus Textfields oder Table und f gen entfernen die Spalten in der Ausgabe New Desktop Application Steps Detail Options Choose Project Disclaimer Create Detail Area as Name and Location Master Table Detail Options Table Available Fields Fields to Include ID MARKE ORT PREIS Hiermit ist unser Projekt fertig und Netbeans hat den kompletten Quellcode fur uns erstellt den Sie im nachsten Kapitel finden k nnen 122 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik TestDBapp NetBeans IDE 6 9 1 File Edit View Navigate Source Refactor Run Debug Profile Team Tools Window Help E a E Pad TE Geer si Y gt Sr i CB 1 f Rid x Files E Services age Je TestDBapp pp java x al f TestbBappa bautBox java x wer a Ei TestDBappview java x 1 Source Design IDEE ati e B Source Packages M E MET A INF ki The Preview
67. DL uA mu Deans Tobe es Se E E Ej E E Ed E E32 Hl v Bg examples E Antenna java EB ContactEdito B Find java Je NewClass jav Si NewClassBed NewJFrame j gt E2 Load Generator 3 gt GG Libraries amp JavaApplications Members View NewcClass getBeispiel2 Si setBeispiel2 Strir Bi beispiel2 String Oe ag iE Java Persistence Look and Feels tainers trols Swing Menus Swing Windows Seminar an der FH Niederrhein FB Informatik Cancel j aM Apply DiFF Patch DiFF To Add to Favorites Analyze Javadoc Create JUnit Tests Open Cut Copy Strg C Compile File F9 Run File Umschalt F6 rov Format with lindent Strg Umschalt F10 Debug File Strgq Umschalt F5 Profile File Delete EntF Save As Template Find Usages Alt F7 Refactor gt Beaninfo Editor File Members Strg F12 File Hierarchy Alt F12 Local History gt Properties alette gt Swing Containers gt Swing Controls gt Swing Me nus gt Swing Windows p AWT Beans Choose Bean p Java Persistence saluiadoid e In der Regel ist die Entwicklung von GUI Programmen von Anfang an an den GUI Editor gebunden Schon bei der Funktionen Entwicklung muss man sich Gedanken machen ber die Vorgehensweise wie die in out Funktionswerte an GUI angepasst werden sollen und 98 168 Wintersemester 2010 2011 Seminar an d
68. Design button On the toolbar enables you to best the design of the Form H EE META INF services S testdbapp a Ei Auta java File Help Fi E TestDBappaAbnoutBox java F T e TestDBaopADG Ia Id Marke Ort Preis i E TestOBappview java T testdbapp resources H EH testdbapp resources busyicons gi Test Packages ge tel Libraries E Le Test Libraries Id Marke Dee or f Source Packages Navig IE Inspector Al E Form TestDBappView Preis ae H iud mainPanel JPanel HE menuBar JMenuBar a sbatusPanel JPanel Es entity Manager Entity Manager Fi query Query Ba ES list List 15 4 Code Analog der Desktop Application werden wieder die wichtigsten Klassen automatisch von Netbeans erzeugt 123 168 Wintersemester 2010 2011 Auto java package desktopapplicationl import a Entity iTable name AUTO catalog Name dQueries ii HNamedQuery name Auto HMamedQueryviname iuto iMamedQueryiname Auto uto T nto ANanedQuer y name ANarnedQuer y name public class Auto implements da Transient private PropertyChangesupport changesupport private static final long serialVersionUID i Id Basic optional Talse FF ID Si private Integer id MAREE marke ORT EE PREIS preis Column name AColumn name private String Column name private String Column name private String public Autoi l pu
69. Drive By Exploit Da die Applets in einer abgeschotteten Laufzeitumgebung Sandbox laufen ist dieses Risiko jedoch gut beherrschbar Ein Sicherheitsrisiko durch b swillige Applets besteht nur wenn die Sandbox fehlerhaft ist Applets die in dieser Sandbox laufen k nnen auf das lokale Dateisystem nicht zugreifen k nnen keine externen Programme starten und keine Netz Verbindungen aufbauen Um diese Einschr nkung zu umgehen kann ein Applet Signiert werden Hierbei wird von unabhangigen Institutionen garantiert dass das Applet keinen Schaden beim Nutzer verursacht Der Nutzer muss vor der Ausf hrung des Applets zustimmen dass er dem Ersteller des Applets vertraut Abbildung 4 Warnung Sicherheit Die digitale Signatur der Anwendung wurde verifiziert M chten Sie die Anwendung ausf hren Name STRAP Multiple Protein Alignments Urheber GRP Code Signing Institut fuer Biochemie Abbildung 4 17 2 Java Server Pages 17 2 1 Grundlagen JavaServer Pages abgek rzt JSP ist eine von Sun Microsystems entwickelte auf JHTML basierende Web Programmiersprache zur einfachen dynamischen Erzeugung von HTML und XML Ausgaben eines Webservers Sie erlaubt Java Code und spezielle JSP Aktionen in HTML oder XML Seiten einzubetten Dabei erm glicht es die JSP Syntax mittels spezieller XML Tags JSP Aktionen vordefinierte Funktionalitat einzubinden Diese JSP Aktionen werden in so genannten Tag Bibliotheken Tag Library als Er
70. E N 9 package javadoc Bereinigen und Erstellen Bereinigen Javadoc erzeugen public class Beis F6 Konfiguration festlegen Als Hauptprojekt festlegen public static return Sr Ben tigte Projekte offnen Schlie en Umbenennen Verschieben Kopieren public static int summe AnschlieBend wird automatisch eine Dokumentation erzeugt im Verzeichnis Doku im Projektordner gespeichert und im Standardbrowser ge ffnet 11 3 3 Erzeugte Dateien Auszug index html Hauptansicht bestehend aus zwei Frames allclasses frame html Linker Frame paketname package summary html Hechter Frame overview tree html Baumstruktur der Klassen Verdeutlichung der Vererbung deprecated list html bersicht ber veraltete Methoden help doc html Kurze Beschreibung von Javadoc 88 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik paketname Klassenname html Detaillierte Dokumentation der Klassen stylesheet css Format f r alle HTML Dateien der Dokumentation 11 4 Erweiterbarkeit Javadoc ist modular aufgebaut Das hei t es k nnen Teile von Javadoc durch andere Teile ersetzt werden Somit ist es m glich dass beispielsweise der Tag Wortschatz durch so genannte Taglets erweitert werden kann Die Ausgabe einer von Javadoc erstellten Dokumentation wird von so genannten Doclets erstellt Standardm
71. E javax swing JFrame 24 25 ss Thin merho d is called from within the conetriucter te i 76 amit lare the form e WARAHING ED BST modify this cde The contant ef thie method ie sa public static void main string ergs i 54 1 java awr EventQueue rnvokeraber nrew Runnable public void runi i Se new addiereri sec is2ible true r 57 52 pis el de Wartahtes dernimrTartiorz ao nor medituy ba ff Ega 6f v rinbles derizratcticn Abb 45 Das vom Editor erzeugte Code 91 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik StartPage 8 ich Majava x 7 Scherer java x public mddaiereri i Der Konstruktor ruft die Methode initComponents T auf um die Objekte im SuppressWarnings onchecked JFrame sowie JFrame selbst privare void initComponentsi if zu Initialisieren merpsefTsulrilosecrpermsctinn jmuewm wuwwimTr WNimdowocComEsr ancs EXIT oO CLOSEAJ s Jayax Zwing Sroupkayouts Layout new ga amp v amp x 1ng croupLayocuzigecCocnutencblsnei l qerconcenrzEB amp Bnei serLasyouri leyour Layout 2e TAorizrontcaleroup layout createParallei Group ljavrax G oupLlayaut d4lignment lLhzeAUIIeNa mHEMSADI 300 Shore May FALE ke layxrut metWerzticalroaup i leyout czresteFfarallelGroupijarax croupLayout Arrgrmnumenut LnLzA amp urmz addGapi 300 Shorr MAX VALUE packt Abb 46 SourceCode mit Eigenschaften der Objekte grau mark
72. Findjava Copy Strg C B New JFrame j E gt G Load Generator s Compile File F9 gt amp Libraries Run Eile Umschalt F6 veer Mee Format with Jindent Strg Umschalt F10 Debug File Strg Umschalt F5 Profile File Delete Entf Save As Template embers View Find Usages Alt F7 NewcClass Refactor gt getBeispiel2 St setBeispiel2 Strin Wi beispiel2 String File Members Strg F12 Alt F12 File Hierarchy Source v Beanln a Properties Name beispiel2 m Expert LI Hidden Li PreFerred LJ Display Name Code null m H Methods Short Description C null m Include in Beanlnfo M Expert s Bound Lj Constrained i Mode Read Write v Property Editor Cla null m beispiel2 Ai 97 168 Wintersemester 2010 2011 Schritt 5 Bean zur Palette hinzufugen Bean soll auf der GUI Palette vorhanden sein Dazu klickt man wieder mit der rechten Maustaste auf unsere Klassdatei und in ge ffnetem PopUp Men auf Tools und dann auf Add to Palette Zum Schluss wird Kategorie abgefragt unter welcher unserer Element zugeordnet wird zweites Bild NetBeans h lt extra Kategorie f r selbst erstellte Beans parat die kaum zu glauben Beans hei t Jetzt kann man unseren Bean wie jeden anderen GUI Element benutzen vorausgesetzt der Pfad zur kompilierter Datei ist im aktuellen Projekt eingetragen 13 2 Binding in NetBeans Palette Categories Swing Con Swing Con AWT Borders
73. Help p Klick mit der rechten Maustaste auf eine Komponente Edit Text und dann ber das Men Set Action eine Action der Change Variable Name ActionMap hinzuf gen Bind Events Ld Sek Action Align d Anchor b Der folgende Dialog erm glicht sehr einfach entsprechende Vorgaben zu machen hier das Beispiel der Action schowAboutBox fi Set Action x Set aboutMenultem s action property using Default editor Vorhandene Action ausw hlen oder Action shawAbautBax rest ene reellen Actions Class desktopapplicationt Diesktapa pplicatian1View Actions Method Action void shawaboutBaxr Background Task _als Backaroundtasks laufen lassen Attributes Basic advanced gs d EE about T p a Show the application s information dialog Accelerator ctrl shift ot Meta Mac only Letter Clear Small Icon Large Icon duet wm E U L I2 L mz wenn gew nscht Ok Reset to default Cancel Help Wird eine neue Actionmethode angelegt so wechselt Netbeans nach dem OK Klick direkt im Editor zu dem Codeger st 201 Action 202 public void goTest 203 204 205 Variables declaration do not modify 107 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Normalerweise wird dieser Code unmittelbar vor die Variablendeklaration geschrieben In manchen Fallen kann es sein dass Netbeans nicht in
74. Kommunikation zwischen Anwendungen oder zwischen Benutzer und Anwendungen erforderlich sind wie z B View System zum Anzeigen von Listen Textfelder Buttons etc Conten Provider zum Austausch von Daten zwischen Anwendungen Resoruce Manager verwaltet Ressourcen wie z B Grafiken Sounds etc Activity Manager verwaltet den Lebenszyklus einer Anwendung Applications Anwendungen In dieser Schicht liegen die eigentlichen Anwendungen Apps da Android offen ist k nnen selbst die Standardanwendungen komplett ausgetauscht werden 151 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 19 1 3 Komponenten in Android Crash Kurs Was sind Software Komponenten Eine Komponente in der Software Entwicklung ist ein Teil einer Software Das Interface der Komponenten ist eine Schnittstelle zum Rest der Software Dabei kann eine Komponente gem eines Composition Standards unabh ngig zu anderen Komponenten ausgef hrt werden Das Komponentenmodell legt einen Rahmen f r die Entwicklung und Ausf hrung von Komponenten fest In Android wird ein einfaches Komponentenmodell definiert Activity Content Provider Broadcast Receivers Services Die Verbindung der Komponenten untereinander wird ber Intents realisiert Dabei ist die wichtigste Komponente in Android die Activity die hier kurz dargestellt ist Activity class MyActiwity extends Activity 1 onCreate Definiert Viev A view wie
75. Markers for Source Fle Merging amp dd Merge Markers te Exstng Sate Exeesenti Preset Before Generating Code A vale tinae rec moxt he sec ied Abb 16 Generate Code Fenster Hier w hlen Sie unter Target Project das neu erstellte Projekt aus und best tigen mit OK oie k nnen nat rlich auch jedes andere bereits bestehende Projekt verwenden Im gew hlten Projekt ist nun unter Source Packages unser Paket Familie Eltern Kind1 Kind2 zu finden Nun kann der erzeugte Code im Projekt verwendet werden Zum Testen wurde folgender Main Code verwendet package umlprojekt class code import Familie Eltern import Familie Kindl import Familie Kind2 pre x author Bizzi SE public class Main 25 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik param args the command line arguments Se public static void main String args 4 TODO code application logic here Eltern Meier new Eltern Kindl Tochter new Kindl Kind2 Sohn new Kind2 System out print Wir sind die Eltern Meier n System out print Ich bin Tochter getName das Tochter getKindt Kind n System out print Ich bin Sonn getName das Sohn getKind Kind n gt System out print Unsere Eltern sind Tochter getEltern Meier n Als Ergebnis und Bestatigung der Funktionalitat erhalten Sie folgende Ausgabe Wir sind die Eltern Meier
76. NeAppiicationt Visuak Copy Ca mt i D ic iriti mm images Deche rb or int k O kc kiki 7 textProcesorPackage d a i k eiupurd data Delete Delete Inspector Save Ah Template m Find Usages ALE Refactor x t pole testovacich hodnot cvs X p atic double makeTestData int k double i eeraa Libuergion i p Jel d new double k BuildiNeuronNebrwork P iint i ickri Loca Hstory Lim E d i zinput data Tools H Properties bed wi r T Abb 40 Local History Im Optionsmen k nnen die Einstellungen zur Local History vorgenommen werden und festgelegt werden wie lange die Dateien gespeichert werden und wie viele Versionen zur Verf gung gestellt werden was man folgender Abbildung entnehmen kann E Options Versioning m p A me Cva Subversion LocalHistory Diff Local History Settings Keep Local History Files For 30 Days Number of Files to keep 83 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Abb 41 Optionen Local History In der Versionsanzeige kann man dann altere Versionen im Vergleich zu seiner aktuellen Version sich anzeigen lassen und die Anderungen ganz simpel mit einem Klick wieder ruckgangig machen 8 NetBeans IDE 6 9 1 File tdt view Navigate Source Hefactor Run Debug Profile team tools window Help tu E33 C g default config FBO
77. PProgramm zu debuggen 8 7 Multi Thread Debugging 8 7 1 Multi Thread Debugging in Netbeans Netbeans bietet die M glichkeit Programme mit mehreren Threads zu debuggen Dabei kann man beim Debuggen in einen Thread gehen nur diesen Thread anhalten oder auch alle Threads Wo bei es nat rlich zu Problemen f hren kann wenn nur ein Thread blockiert wird je nachdem wie das Programm programmiert ist Die verschiedenen verschiedenen Threads des laufenden Programms sieht man im Thread Fenster indem man auch einige Aktionen mit den Threads durchf hren kann 64 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 8 7 2 Thread Fenster Th system Th main E main Reference Handler CT Finalizer Signal Dispatcher Der obige Screenshot zeigt das Thread Fenster in Netbeans Es hat eine baumartige Struktur durch die man sehen kann welcher Thread von welchem Thread aufgerufen worden ist Hauptthread ist immer der system Thread In der linken Spalte der Tabelle steht der Name des Threads Der dick geschriebene Name kennzeichnet den der zeitigen Thread in diesem Screenshot ware dies also der Thread main Vor den Namen befinden sich kleine Symbole die ich hier genauer erkl ren will kennzeichnet die Threadgruppe die den aktuellen Thread enth lt kennzeichnet die Threadgruppe die den aktuellen Thread nicht enth lt D kennzeichnet den aktuellen Thread 7 kennzeichnet einen laufenden Thread der allerding
78. Packages EE E bank Main java Unter Test Packages wurde nun ein a See EE bankAccountTest erstellt TE Test Packages Ea bank ES ei bankAccountTest java o T Libraries Si B Test Libraries JUnit 4 5 junit 4 5 jar 49 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Den von JUnit erstellten Quellcode sehen wir uns nun etwas genauer an 15 public class bankAccountTest i1 20 n public bankAccountTest i 22 23 24 BeforeClass n public static void setU UpClass throws Exception 26 27 28 BATterClass n public static void tearDownClass throws Exception t1 30 31 32 Before n public void setUp E a4 35 36 eAfter n public void tearDown 38 39 40 aj 42 43 Test 44 public void testSetBesitzer 45 System ont printrln setBesitzer 46 String besitzer AT bankAccount instance new bankAccount 48 instance setBesitzer besitzer 49 TOM iew tht nerated test cod 50 fail The test case is a prototype 51 52 Wie man sehen kann wurden diverse static Methoden erstellt Diese l sen das fr here verwendete setUpClass setUp usw ab In JUnit werden daf r nun Annotations verwendet Es reicht vor Methoden ein Before oder After zu schreiben und diese Methoden werden automatisch zu Nach oder Vorbereiter von Tests JUnit hat uns auBerdem zu allen vorhandenen Methoden unserer Klasse bankAccount eine Testmethode
79. Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Netbeans das universale Werkzeug fur Applets Desktop und Mobile Applications in JAVA Leiter Dr Karsten Menzel Teilnehmer Jan Bongartz Markus Wollny Gregor Piel Max Leopold Marcel Hoft Tim Ingensiep Sascha Oedekoven Christian Kropp Alexander Nolting Artur Schmidt Vladimir Komarov Alexander Zitzer Paul Bernasch David Hamm Holger Jansen Dominic Scharmann Inhalt ei Ol E 3 le EMUN E TR 4 1 1 Sie sz jan dire ee tac CUR 4 t2 cues E 7 1 3 Beispiel amp Ubungsprogramm etre etes tn rnc 9 2 Hello World mit Netbeans Alexander Ztzer nenne nenn nenn nenne nenn nennen 11 3 UML Einf hrung amp Beispiele Jan Bongartz 25 10 2010 nenn nennen 13 3l Was 45 Ecce 13 32 Ee Le EE 13 SE IVIL DIAGF amies ose Greta cae ii 14 ou EE 18 4 UML mit Netbeans Markus Wollny 25 10 2010 ccc cceccceeeeeeeeeseeeeeeeeseeeeneeeenes 19 At e e EE 19 4 2 lOGCCNEHIWICKIUNG Mit RI E 19 43 Te Ee E 19 4 4 Erstellung eines Projekts mit Arbeitsbereichs bersicht 20 e EE Ee 23 AO OEE a 30 5 Einf hrung in das Logging Gregor Piel O8 11 2010 31 om LOO Biro i EE 31 5 2 elen EE 31 5 3 Java LOGGING Framework EE 32 54 Beispiele un FOO SONE EE 36 55 TEE 37 6 Software Test Max Leopold 1Di1T2010 nennen 38 SC EE ak EE 38 62 slatische Melodinen a a a 39 6 3 Dyhamische Methoden WEE 41 SE E e
80. a util logging SimpleFormatter java util logging FileHandler pattern logfile log java util logging FileHandler level WARNING Set the default formatter for new ConsoleHandler instances java util logging ConsoleHandler formatter java util logging SimpleFormatter Set the default logging level for the logger named com mycompany com mycompany level ALL 36 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Das Laden der Properties Datei erfolgt in der main Funktion der FotoSorter java Datei 499 500 OD 502 503 504 gt 05 gt 08 207 508 SE 5 10 311 alz ako 514 ciks 316 S17 519 219 520 521 public statio void main String args l 1 System setProperty java util loggi logging properties config file try LogManager getLogManager readConfiguration lh Catch IOException er System err printlin java util ResourceBundle getBundle fotosort Bundle getString PROBLEM TO LOAD LOGGING EROPERIIES Js java awt EventQueue invokelater new Runnable Override public void runt 1 try UIManager setLookAndFeel UIManager getSystemLookAndFeelClassName ii catch Exception e ovstem out println Error amp new FotoSorter setVisible true 3 Log Methode in Changer java 138 139 140 141 142 143 144 145 146 147 148 149 j 5 5 private int fieldToInt JTextField jtf int rer try ret Int
81. abei durch Pfeile dargestellt dessen Pfeilspitzen bei synchronen Nachrichten gefullt und bei asynchronen leer sind Der Aktivierungsbalken unterhalb eines Objektes gibt an wann ein Objekt ber den Kontrollfluss verf gt Beispiel Synchrone Nachricht Synchrone Antwert 3 4 Quellen http www highscore de uml http www jeckle de http www oio de public objektorientierung uml referenz 2 1 index htm http www oose de swe uml html http wwws3 informatik uni erlangen de http www st informatik tu darmstadt de http de wikipedia org wiki Unitied Modeling Language http www uml org 18 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 4 UML mit Netbeans Markus Wollny 25 10 2010 4 1 Vorwort Dieses Skript dient dem Einstieg in die Benutzung von UML mit Netbeans Es wird vorausgesetzt die einzelnen Diagrammarten von UML verstanden zu haben und deren einzelne Funktionen wie z B die verschiedenen Beziehungen von Elementen zueinander verwenden zu k nnen 4 2 Ideenentwicklung mit UML Bis zur Version 6 7 gab es in Netbeans ein UML Plugin Die Entwicklung wurde eingestellt otattdessen kann man innerhalb Netbeans nun mit dem Plugin von Visual Paradigma arbeiten UML steht f r Unified Modelling Language welche es erlaubt einen graphischen Entwurf von otrukturen und Komponenten im Sinne des objektorientierten Softwaredesigns zu entwerfen Innerhalb von Netbeans ist dann ein Forward an
82. ache org quides introduction introduction to profiles html http maven apache org plugins maven resources plugin examples filter html 147 168 Wintersemester 2010 2011 18 8 Dependency Graph Seminar an der FH Niederrhein FB Informatik Der dependency Graph ist in Feature in Netbeans welches einem erm glicht die dependencies eines Projekts graphisch darzustellen Dies kann sehr n tzlich sein da h ufig Libraries auch Abhangigkeiten zu anderen Libraries haben und diese Abhangigkeiten ebenfalls dargestellt werden So bekommt man einen guten Uberblick welche Abhangigkeiten ein Projekt wirklich hat Probieren Sie es aus Sie werden berrascht sein ZU erreichen ist dieser ber einen Rechtsklick auf den Projektnamen Show Dependency Graph T5 r7 k i Projects gt ij Sourd b PS Test b m Other P EA Other gt G Libra b E Runti gt B Test gt CG Projed Wicket Spring Mew p Build Clean and Build Build with dependencies Clean Generate javadoc Run Debug Profile Test Alt F6 Custom p Set Configuration Reload Project Set as Main Project Open Required Projects Close Unter den Reitern Basic Project Classpath werden noch Weitere Eigenschaften des Projektes dargestellt So ist dies besser auf einen Blick erfassbar als in der pom xml 148 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik E amp amp Find
83. agramme zur Darstellung von statischen Strukturen oder Aktivit tsdiagramme zur Veranschaulichung von dynamischen Ablaufen Zu den Beziehungen von Objekten werden Begriffe f r Vererbung Realisierung und Abhangigkeiten festgelegt 3 2 Entstehung Diagramme der UML Struktur Verhaltens diagramme diagramme Klassen i Aktivitats Use Case diagramm Objektdiagramm diagramm Diagramm Komponenten Verteilungs Zustands diagramm diagramm automat x 5 Interaktions nnn Paketdiagramm diagramme strukturdiagramm Sequenz Interaktions ber diagramm sichtsdiagramm Kommunikations Timing diagramm Diagramm Die in den 1990er Jahren immer zunehmende Bedeutung und breitere Verwendung von Objektorientierter Softwareentwicklung machte eine einheitliche Modellierungssprache immer wichtiger Die drei Informatiker Grady Booch Ivar Jacobson und James Rumbaugh auch die drei Amigos genannt entwickelten daher bereits eigene Modellierungssprachen die sie dann strukturiert zusammenf hrten So entstand ein Vorlaufer der UML 1 Die Weiterentwicklung von UML wurde an die Object Management Group OMG ein 1989 gegr ndetes Konsortium das sich mit der Entwicklung von Standards f r die herstellerunabhangige system bergreifende Objektorientierte Programmierung besch ftig bergeben Dort wurde am 19 November 1997 UML 1 als Standard akzeptiert Im Jahr 2005 erschien die berarbeitete Version UML 2 und seit Mai 2010 gibt es Version 2 3 13 168 Winte
84. an der FH Niederrhein FB Informatik 9 3 7 Analyze Performance Es wird die Ausf hrungszeit der Ce einzelnen Methoden und Klassen c gemessen Dank DBI werden nur C Monitor Analyze Performance Methoden die wir pr fen wollen mit Bytecode versehen Dadurch haben wir Ky PU ded zum einen eine viel Ubersichtlichere Analyze Performance Ausgabe und das Programm bleibt Create Custom schnell Show filter value Edit Filter sets Memory Part of application 2 root methods edit Filter Profile only project classes Use defined Profiling Points Show active Profiling Points Overhead MEI Ix Entry Application Alle Methoden werden berwacht Threads senden ein Method enty Event beim eintreten in eine Methode und ein Method evt beim austreten der Methode Beide Events haben Timestamps Part of Application Es wird nichts gepr ft bis wir in eine vom User gew hlte Root Methode treffen Die Anwendung wird insgesamt nicht so sehr verlangsamt wie bei der Option Entry Application Einige Anwendungen m ssen durch ausw hlen einer Root Methode gepr ft werden da die Anzahl der generierten Daten sonst unbrauchbar w ren oder die Anwendung sogar Crashen k nnte unexpected timeouts Custom Profiling Konfigurationen der Filter etc werden hier gespeichert Zu gebrauchen wenn z b eine Webanwendung gepr ft werden soll die auf Apache Tomcat l uft durch die Filter k
85. angezeigt 65 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik gt Gh Finalizer suspended at Object wait D Resuming suspended threads in the ead sleep gt Debugging window LJ Thread1 run 22 v Gb MyThread2 suspended at Thread2 run 22 D Xj Thread2 run 22 gt b Reference Handler suspended at Object wait D gt Gi Signal Dispatcher suspended 5 at Thread1 run 22 D A Deadlock detected Man sieht in diesem Screenshot dass ein Deathlock zwischen Thread und Thread2 besteht 8 9 Tutorial Unter folgender URL befindet sich ein Tutorial zum Thema Multi Thread Debugging und Deathlock Detection Debugging Multithreaded Applications in NetBeans IDE Unter diesem Link findet ihr eine bebilderte Schritt fur Schritt Anleitung sowie das Beispiel Projekt Ebenfalls auf der Seite verf gbar sind Videos in denen das Tutorial abgearbeitet wird Si ech Quellen Netbeans Debugger Short Tutorial Java Tips Use Netbeans Debugger breakpoints for tracing NetBeans IDE Debugger Features NetBeans Debugger Demos Wiki Home Project Kenai Netbeans Debugger Tutorial eHow com CSE11OO NetBeans Debugger www javapassion com javase remoteDebugging pdf Debugger Wikipedia Debugging Multithreaded Applications in NetBeans IDE 66 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 9 Netbeans Profiler Sascha Oedekoven 22 11 2010 9 1 W
86. ann man die VM nicht optimieren zudem bietet es kleine Flexibilitat da es feste Events sind Monitor Events kommen kaum zum Einsatz au er zur Kontrolle des Garbage Collectors Sampling Es werden in einem bestimmten Zeitlichen Abstand 10ms 100ms Informationen vom otack geholt und abgespeichert Nun wird berpr ft wie oft eine bestimmte Funktion bereits oben auf dem Stack liegt Liegt sie Beispielsweise 4 mal auf dem Stack und es wird alle 10ms berpr ft dann wird gesagt dass diese Funktion bereits 40 ms ausgef hrt wird Dies ist nat rlich ungenau zudem besteht keine Ubersicht dar ber ob eine Funktion nun mehrmals nacheinander aufgerufen wurde oder durchg ngig ausgef hrt wurde Das durchf hren von Memory Profiling ist mit dieser Technologie auch nicht m glich 9 2 2 Dynamic Bytecode Instrumentation DBI Der Bytecode wird nicht mehr statisch eingef gt sondern kann zur Laufzeit eingef gt und entfernt werden Daraus folgt dass wir die Anwendung auch nicht mehr Neustarten m ssen was uns viel Zeitersparnis bringt Es kann einfach eine Klasse Methode ausgew hlt werden welche mit Bytecode versehen werden soll diese wird dann beim n chsten Aufruf der Klasse Methode gepr ft 9 3 Netbeans Profiler Funktionen 9 3 1 Remote Profiling Es ist m glich eine Anwendung auf einem Remote System zu pr fen Hierzu muss ein Remote Packet auf dem zu pr fenden System installiert werden 67 168 Wintersemester 2010 2011 Semi
87. as die Bibliotheken nicht mit ins Versionierungssytem CVS Subversion eingecheckt werden m ssen da alle Bibliotheken zentral in Repositories zu Verf gung stehen So k nnen auch Versionskonflikte unter den Bibliotheken vermieden werden W hrend des compile Vorgang schaut Maven im Hintergrund auf den in der pom konfigurierten Respositories nach ob es die gew nschte Dependency finden kann Ist kein 143 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Repository hinterlegt greift Maven auf das default Maven Respository zuruck und ladt diese herunter und f gt sie dem Projekt hinzu F r die Meisten Anwendungen reicht eigntlich das default Maven Repository oollte man die gew nschte Library nicht finden kann man diese nat rlich auch in seinem lokalen Repositroy hinterlegen Zu finden ist dieses unter e Linux m2 e Windows C Documents and Settings USER m2 Weiterf hrende Infos dazu gibt es hier Alternativ und in Firmen gangigere Praxis ist das aufsetzen eines eigenen Repository Servers wie z B Nexus von Sonartype wo Firmeneigene Projekte bereit gestellt werden Alles weitere zum Dependency Management kann der Maven Doku unter entnommen werden 18 4 4 Automatisierte Tests Ein weiteres Feature von Maven ist das automatisierte ausf hren von Unit Tests im Anschluss an den Compile Vorgang Dazu schaut Maven im Verzeichnis test nach und f hrt alle Unit Test die es dort findet aus Man baut
88. as erlaubt Code in die Methode _jspService des generierten Servlets einzuf gen Es werden also lokale Variablen daraus Methoden k nnen nicht erzeugt werden hierzu muss die vorstehende Notation verwendet werden 137 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik lt int localStackBasedVariable 1 gt e Ein Tag das erlaubt Code zu expandieren und direkt in die HTTP Antwort zu schreiben Das Semikolon wird hier nicht benutzt da der Code als Ausdruck ausgewertet wird lt expanded inline data 1 gt Deklarationen Deklarationen dienen zur Definition von Variablen und Methoden die von anderen Elementen in der JSP verwendet werden k nnen Deklarationen erzeugen keine Ausgabe innerhalb der JSP lt int var ableMeinerKlasse 0 gt Ausdr cke Ausdr cke expressions werden dazu verwendet Variablen oder Methoden direkt in den HTML oder XML Ausgabestrom zu integrieren Die Klassenvariable ist lt variableMeinerKlasse gt Skriptlets JSP Skriptlets k nnen zur Implementierung der Ablauflogik sowie der Erzeugung der HTML oder XML Ausgabe eingesetzt werden Der Skriptlet Code wird innerhalb der Methode _jspService des generierten Servlets eingef gt lt int variable 0 out printin Der Wert der Variable ist variable gt W Kommentare Kommentare sind nur innerhalb der originalen JSP sichtbar sie werden nicht in den Ausgabestrom geschrieben lt K
89. as ist ein Profiler Mit Hilfe eines Profilers k nnen langsame Methoden und Memory Leaks identifiziert werden Allgemein dient er zur Laufzeitverhalten Analyse Speicher berwachung und zur Uberwachung von Threads Alles hat irgendwo Grenzen so auch das Potenzial des Profilers Zum Beispiel entstehen in Informationssystemen zu 8096 die Probleme aus Datenbankzugriffen Zudem ist der Profiler kein Wunderwerkzeug man muss die Daten die er liefert richtig Interpretieren k nnen hierzu ist Erfahrung n tig 9 2 Technische Details 9 2 1 Traditional Profiler Techlnologies Bytecode Instrumentation Dies ist die meist verbreitete Technik Hierbei werden Bytecodes in jede Klasse eingef gt Das f hrt allerdings zu einigen Problemen Eines ist die Flexibilitat wenn die Bytecodes einmal eingef gt wurden k nnen sie nicht zur Laufzeit geandert werden Es kann entweder die ganze Anwendung oder nur ein Teil gepr ft werden Wenn die ganze Anwendung gepr ft wird kann dies zu erheblichen Schwierigkeiten durch Performance Probleme f hren Wenn allerdings nur ein Teil der Anwendung gepr ft wird dann wird m glicherweise die Fehlerstelle nicht gepr ft und ein Fehler bleibt unentdeckt Sicher k nnen wir nun St ck f r ot ck die Anwendung pr fen doch es m sste nach jedem Durchgang neugestartet werden Monitor Events JVMPI und JVMTI generieren Events f r Methoden Eintritt und Methoden Austritt sowie Objektreservierung uvm Mit dieser Methode k
90. b auch Archtypes genannt Archtypes geben einem die M glichkeit Projektstrukturen direkt nach z B Firmenvorgaben oder Best Practice zu generieren Es wird also eine komplette Projektstruktur und je nach Archtype direkt auch einige Basisklassen etc erstellt Eingeleitet wird dieser Vorgang durch das Kommando mvn archetype generate Mit diesem Kommando wird man auf der Konsole anschlieBend durch einen Dialog geleitet welcher einem bei der Erstellung des Projektes Hilft Dieser fragt z B die gew nschte Paket Hierarchie sowie den Projektnamen und den Typ des Projekts ab Man kann nat rlich auch direkt einen Archtype angeben Mit dem Kommando mvn archetype generate DarchetypeArtifactld maven archetype webapp w rde man also eine Webapp nach Maven Vorgaben generieren So kann dieser Dialog abgek rzt werden Man kann auch direkt alle n tigen Parameter bergeben und so diesen Dialog vollstandig umgehen Ein Beispiel welches dies Zeigt ware z B mvn archetype generate B DarchetypeCatalog http legup googlecode com svn repo archetype catalog xml DarchetypeArtifactld wicket spring jpa archetype DarchetypeGroupld com jweekend DarchetypeVersion 0 8 4 Dgroupld de hsnr seminar Dartifactld example Dversion 1 0 SNAPSHOT Dpackage de hsnr seminar Dies ist ein vorgefertigter archtype zur Erstellung eines Projektes mit Spring JPA Hibernate und Wicket Dies ware ein typischer Archtype f r eine moderne Webapp wie sie Taglich
91. blic Auto Integer id this id id b public Integer getIdi i return id Integer oldld chie d ale public String getMarke return marke string oldMarke this warke mar ke public String get rti return ort this art prt public String getPreisi l return preis Fr r U Fr ml e m Fr a B es ERT changeSupport firePropertychangei id changesupport firePropertychange marke changesSupport firePropertycChangei ort Seminar an der FH Niederrhein FB Informatik OT schema TREAT Ti nd ll query SELECT a FROM Auto ar findById query SELECT a FROM Auto a WHERE a id id tincdBbvHarbe query SELECT a FROM Auto a WHERE a marke imarke j ZindByvort query SELECT a FROM Auto a WHERE a crt Porc lAndByPEei15 query SELECT amp FROM Auto a WHERE 23 preise EES Serializable new PropertyChangesupport this LL public void setlIdilnteger id i CHIA id oldId idj 1 public void setMarke String marke i Ehilis maurkes oldMarke marke public void set rt String ort f string oldort this OEL re Bo hoa GEEN d 124 168 Wintersemester 2010 2011 public void setPreis String preis i string oldPreis pbis mmcerss Taisg EE E changeSupport firePropertychange preis Override public int hashtCodeij i int hash 0 hash iid null id hashCodel Oj return hash Overri
92. cce 43 SE EE e EEN 46 b5 2 EE 46 7 Testen mit JUnit 4 Marcel Holt Te IEN 47 Ply JUnit4 X Neuheiten anne u 47 7 2 Unser Beispiel ein Bank Account sss 47 FC EMI EE UE enee nn TT 52 7 4 OAO ge c TOT M 53 ko Testen MIL Parameterlstelistusstiukussa i Eu ai 53 7 0 CIE trm 55 8 Netbeans Debugger Tim Ingensiep 27211 2010 57 9d Masuisbelm Bi e Lei 57 9 2 INGIDEANS WEDUGG CF nennen 58 ofc n d STO RE eT ee eT ec ncn ec ct cree 58 pu e TE 62 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 9 5 Evaluate EXPreSSlONS EE 63 8 6 MUlli SeSSiOn DEDUGGING EE 64 9 6 M ultt Thread DEDUGGING DEE 64 8 6 Deathl ck Deteclloll a ee CLE 65 De Oae aT 66 8 710 OU cmm 66 9 Netbeans Profiler Sascha Oedekoven 27271 2010 67 Oil Was io eN PIONIEL Lo mcm 67 92 TEcNNSCNe Detal ice aaa 67 9 3 Netbeans Profiler FUNKUONE M nenn nenn nnn nenn nnnnnnnnnnnnnnnn 67 9 4 Beispiel Anhand des Programmes SyncFiles c cceseeeeeeeeeeeeeeeeeaeeeeeeeeeeeens 72 GE EE EE 73 10 CVS Local History Christian Kropp 20971 2010 nenne nennennnnn 74 E NG E Ee e E ad leie Ee 74 10 2 DASiISUGCVSTICHU EE 77 hellt ee e EE 77 TOA GN ASTE Ee EE Lf 10 5 V r Nachteile von GVS u ie lin 81 10 6 JAllerfiall vel zi Ve wien t tee ann Pa a St Ee Eo ERST SPEM EDU EODEM CEDE 81 10 7 Local History m Netbeans x eee uela a Ue Du D ER v NEU e qu E Eius 82 11 Javadoc Al
93. ck Allerdings ist von den Entwicklern nicht dokumentiert worden ob dieses Wortspiel beabsichtigt ist Subversion versteht sich als Weiterentwicklung von CVS und entstand als Reaktion auf weit verbreitete Kritik an CVS In der Bedienung der Kommandozeilenversion ist es sehr ahnlich gehalten Mit Subversion ist es aber im Gegensatz zu CVS z B m glich Dateien oder Verzeichnisse zu verschieben oder umzubenennen ohne die Versionsgeschichte zu verlieren 10 6 2 Mercurial Es wird nahezu vollst ndig in Python entwickelt lediglich eine diff Implementierung die mit binaren Dateien umgehen kann ist in C umgesetzt Mercurial wird primar ber die Kommandozeile benutzt alle Kommandos beginnen mit hg dem Elementsymbol von Quecksilber engl Mercury Entwicklungsschwerpunkte von Mercurial sind Effizienz Skalierbarkeit und robuste Handhabung von Text und Bin rdateien W hrend bei Versionskontrollsystemen mit zentralem Server wie CVS oder SVN Dritte in der Regel nur lesenden Zugriff auf das Repository haben wird bei Mercurial das Repository des Projektes an dem man entwickeln will geklont also eine lokale Kopie erstellt Auf dieser lokalen Kopie stehen dann die blichen Funktionen zur Verf gung beispielsweise das Erstellen neuer Revisionen Change Set genannt Die F higkeit Entwicklungszweige zu erstellen und zusammenzuf hren engl branching und merging ist fester Bestandteil von Mercurial Eine integrierte Web Schnittste
94. crollen um den jeweiligen Zellen wieder die passenden Values zuweisen zu k nnen Das Ergebnis k nnte dann wie folgt aussehen Buscar Mama er Frase exacta _ Buscar desde el inicio del documento Todas las Palabras Buscar Sleccion Expresiones Regulares Busqueda hacia atras _ Resultados Importantes Incrementar Busqueda Um die einzelnen Sprachen einstellen zu k nnen gibt es zwei Wege Einer ist ber den Code hier muss man sich der getBundle Methode bedienen Diese ruft man mit dem Befehl lt Klassenname gt getbundle auf Als Argumente ruft man dann die Resource datel auf und die gew nschte Locale Dieser Befehl k nnte dann z B ResourceBundle getBundle MyResources currentLocale sein Eine weitere M glichkeit die Sprache festzulegen ist das Voreinstellen der gew nschten Locale Datei ber die VM Dies lauft wie folgt ab Im Hauptfenster gibt es die Option Customize Hier kann man dann der Einstellung einen Namen geben zum Beispiel Deutsch und schreibt dann in die Zeile VM Options den Befehl Duser languagezde Duser countryzDE Das Variable an diesem Befehl sind die K rzel Das erste K rzel gibt die Sprache an in diesem Fall de f r Deutsch und das zweite K rzel gibt das Land an in diesem Fall de f r Deutschland Ein Unterschied in dem Befehl gibt es bei Amerikanischem Britisch hier w rde der Befehl Duser languagezen Duser countryzUS hei en Configuration Deutsch wa
95. d Reverse Engineering moglich Alle Diagrammarten werden visuell im Editor erstellt und k nnen in ihren Eigenschaften angepasst werden Der Entwurfsprozess wird durch vordefinierte Modelle und Entwurfsmuster unterst tzt Typische Beispiele sind e Aktivit ten Diagramm Klassen Diagramm Kollaborations Diagramm Komponenten Diagramm Verteilungs Diagramm Interaktions Diagramm Zustands Diagramm Anwendungsfall Diagramm 4 3 Installation 4 3 1 Installation von UML bis Netbeans 6 7 Bis zur Netbeans Version 6 7 gestaltet sich die Installation von UML relativ einfach Hier ein Beispiel mit der Netbeans IDE 6 5 Wahlen Sie unter dem Men punkt Tools die Option Plugins aus Nun ist folgendes Fenster zu sehen 19 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik r File Edit View Navigate Source Refactor Run Debug Profile Versioning Tools Window Help J Projects KWR Reload Catalog Install Name Category Source ital UML Elixir Repertoire NetBeans Plugin Tools Jindent Tools Ant 1 7 1 Documentation Tools Load Generator Tools Code Coverage Plugin Tools SwingExplorerPlugin Tools LJ NetBeans Certified Plugin Version 1 4 2 Date 06 03 09 Source NetBeans Homepage http uml netbeans ora OOOO H Clearcase Versioning Wicket Support Web Vroom Web Framework Web Echo2 Support Web Wicket File Templates Web GWT4NB Web Plugin Description
96. de public boolean equals Object object if object instanceof utoj return false Auto other Auto object if this id null amp amp other id null return false return EEN Herr idee public String tostringi oldPreis this id return desktopapplicationl RAuto id id I preis I null amp amp Seminar an der FH Niederrhein FB Informatik Ithis id eqguals fother id 4 public void addPropertyChangeListeneriPropertyChangeListener listener i changesSupport addPropertyChangeListener listener public void removePropertyChangelisteneri PropertycChangeListener listener i changesupport removePropertyChangeListener listener DesktopApplication1 Quellcode siehe oben da v llig analog 125 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik DesktopApplication1 View package desktopapplicationi import FER public boolean isSsavreHeeded i class DesktopApplicationilView extends FrameView public DesktopApplicationlViexiSingleFrame ipplicarion app super appl init Componenta ij ResourceMap resourceMap getBEesourceMapi i int messageTimeout resourceMap get Integer StatusBar messageTimecut messageTimer new Timer messageTimecut new ActionListener i public void actionPerformed ActionEvent ei i ri messageTimer setRepeats false int husy nimationRate resourceMap getiInteger Sta
97. den Codeeditor wechselt In der Regel liegt dies daran dass Netbeans nicht wei wo es den Code hinschreiben soll und dann gar keinen Code erzeugt In der Regel hilft hier einige Methoden zu verschieben oder den Methodenrumpf von Hand zu schreiben und dann die Action im setAction Dialog auszuwahlen Wird ein Background Task gew nscht dieser erm glicht weiter die Bedienung der Oberflache wahrend im Hintergrund umfangreiche Berechnungen oder das Laden von Dateien durchgef hrt werden so ist einfach ein Haken im Set Action Dialog zu setzen Netbeans erzeugt dann automatisch folgenden Code 9 Action public Task goTest 1 Eas In der Actionmethode wird return new GoTestTask getApplication nun der entsprechende Task aufgerufen private class GoTestTask extends org jdesktop application Task lt Object Void GoTestTask org jdesktop application Application app Initialis B Wert nitiallsierung ZP um erte aus Textfeldern als Parameter an die super app Berechnung zu Ubergeben Override protected Object doInBackground Hier wird die Hintergrundarbeit ausgef hrt return null ln Override protected void succeeded Object result Dies wird nach Beenden des Tasks als Letztes aufgerufen Hier kann z B j die GUI wieder aktualisiert j werden Um zu verstehen was dieser Code bewirkt ist folgender Artikel sehr hilfreich da Task den Swingworker einfach erweitert http java sun com developer technicalArticles java
98. der Code deutlich k rzer und Redundanzen entfallen 166 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Gl LECH Jahres 0 Lhonate d Dh Tage Stunden o Minuten D FE EELT ECH Er EN 7 jlextFieldYears JTextField Properties E Properties Binding Events Code ancestorResized none a caretPosition changed lt none gt C caretLlpdate none componentcdded none gt componenthidden none gt componentoyved lt none gt componentRemoved none gt componenthesized lt none gt componentshown focueGained focusLos hierarchy Changed inputMethodText Bis Handlers for focusLost keyPressed Handlers keyReleased a key Typed mouseclicked mouseDragged mouseEntered maouzeExited mouzeloved mouzePressed focusLost java awt event F 21 1 4 Internationalisierung des Fotosorters E SE AEE E AE o Al E E EE E E ee JE E JEDE JE QE JEJ C20E E E0EOCOE JEOE JEJE DEJGUE x I Close Sholearesg Wir haben Fotosorter internationalisiert in dem wir eine Bundle properties Datei erstellten wie dies funktioniert ist im Kapitel ber Internationalisierung nach zu lesen In der Bundle properties Datei wurde dann den einzelnen Keys die durch die Elemente der Benutzeroberflache definiert sind als erstes die Values Werte der default S
99. die Nutzung bei der Code Completion und die Validierung Einf hrung einer M glichkeit aus vorgegebenen Sets f r Tastenk rzel oder Faroschemas z B im Emacs Stil zu w hlen oder diese nach eigenen W nschen anzupassen Codecompletion umfasst beispielhaft folgendes Code von konfigurierbaren Vorlagen Getter und Setter Anonyme Innere Klassen Methodenk rper f r Methoden welche berschrieben oder implementiert werden try catch Bl cke mit passenden Exceptions Zus tzlich kann durch die Verwendung bestimmter Abk rzungen Camel Case Identifier Code erzeugt werden So kann beispielsweise die Eingabe von AIOOBE automatisch durch ArraylndexOutOfBoundsException ersetzt werden oder sout f hrt zu System out printeln Refractoring ist ein Umbenennen Umwandeln bei dem auf den Kontext R cksicht genommen wird Beispielhaft sind zu nennen e Rename Umbenennen von Paketen Klassen Methoden und Variablen e Extract Method Quelltextabschnitte innerhalb von Methoden zu neuen Methoden extrahieren e Change Method parameters Signatur einer Methode interaktiv verandern Parameterreihenfolge andern e Encapsulate Fields Direktzugriffe auf Objektfelder in Getter und Setter Methoden wandeln Pull Up Eine Methode in die Superklasse verschieben Push Down Eine Methode in eine Subklasse verschieben Move Class Eine Klasse in ein anderes Paket verschieben Move Inner to Outer Level Eine innere Klasse in eine nor
100. digma arbeiten UML steht fur Unified Modelling Language welche es erlaubt einen graphischen Entwurf von otrukturen und Komponenten im Sinne des objektorientierten Softwaredesigns zu entwerfen Innerhalb von Netbeans ist dann ein Forward and Reverse Engineering m glich Alle Diagrammarten werden visuell im Editor erstellt und k nnen in ihren Eigenschaften angepasst werden Der Entwurfsprozess wird durch vordefinierte Modelle und Entwurfsmuster unterst tzt Typische Beispiele sind e Aktivit ten Diagramm e Klassen Diagramm e Kollaborations Diagramm e Komponenten Diagramm 4 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Verteilungs Diagramm Interaktions Diagramm Zustands Diagramm Anwendungsfall Diagramm 1 1 2 Entwicklung von Code Hier hilft Netbeans durch umfangreiche Editorfunktionen Codecompletion und Refractoring Einige Features des Editors sind Javatipps die bei der Quelltexterstellung helfen Komponentenpaletten zum einfachen Einf gen von Codeschnipseln z B HTML JSP oder SQL via Drag amp Drop in eine JSP oder HTML Seite i Fehlermarkierung die anzeigt ob die Datei kompilierbar ist oder nicht und einen Uberblick ber alle Fehler Warnungen Todos und Bookmarks im Quelltext gibt Umschlie en eines selektierten Statements mit einem try catch Block SQL Editor mit Syntaxhervorhebung einfaches Hinzuf gen von XML Dateien wie Dokumenttypdefinitionen DTD und Schemas XSD f r
101. e Folge hat Deshalb ist der statische Test ein Test der gerne in der Praxis genommen wird um fr h zu berpr fen ob das Programm der Projektplanung entspricht Da bei der statischen Methode oft mehrere Entwickler ber den Quellcode schauen werden fters Verbesserungen gefunden und diskutiert Dies wiederum tr gt sehr stark zur Qualitat der ooftware bei 6 3 Dynamische Methoden 6 3 1 Was sind dynamische Methoden Die Eigenschaften von dynamischen Methoden sind fast das Gegenteil der statischen Bei den dynamischen Software Test muss der Quellcode ausf hrbar sein Das hei t das Modul muss soweit Kompilierbar und Ausf hrbar sein Dadurch werden dynamische Test erst sp ter in der Softwareentwicklung eingesetzt Hierbei gibt es dann Testf lle und Testdaten Unter einem Testfall versteht man einen Testrahmen mit Testdaten Es wird bestimmt unter welchen Eingabendaten welches Ergebnis erwartet wird Am Ende wird berpr ft ob das Programm die gew nschten Ergebnisse liefert Dabei berpr ft der Test das Ergebnis selber d h Der Programmierer muss nicht selber berpr fen ob das Programm korrekt gearbeitet hat Das heiBt auch das ein Test mit verschieden Parametern immer zu dem erwarteten Ergebnis f hren sollte 6 3 2 Beispiel In dem ersten Beispiel zu Dynamischen Methoden zeige ich die berpr fung anhand einfacher if und else Anweisungen Dabei benutzen wir das alte Programm mit dem Binomialkoeffizienten Der Testfall wird hierbei
102. e Hilfe htm Die beiden Codes im Vergleich userDir userDir replace replace Funktion ohne Fileseparator Desktop getDesktop browse new URI userDir help html userDir userDir replace fileSeparator replace Funktion mit Fileseparator userDir userDir replace 20 Desktop getDesktop browse new URI file userDir help html 21 1 3 Vereinfachungen der FocusLost Methoden In der Ursprungsversion des Fotosorters wurde fur jedes FocusLost Event eine eigene Methode mittels des Netbeans Wizard erzeugt 523 private void jTextFieldYearsFocusLost java awt event FocusEvent evt 524 build Tab2 false 529 J 526 527 private void jTextFieldMonthsFocusLost java awt event FocusEvent evt 528 build Tab2 false 2329 530 53 private void jTextFieldMinsFocusLost java awt event FocusEvent evt 532 buildTab2 false 533 Da diese Methoden alle den gleichen Code enthalten wurde im Kurs gezeigt wie dies vereinfacht werden kann Hierzu wurde eine neue Methode erstellt 437 private void updateTab2 java awt event FocusEvent evt 438 build Tab2 false 430 Nun m ssen nur noch die Textfelder mit dieser Methode verbunden werden Hierzu klicken wir im Designmodus mit der rechten Maustaste in das entsprechende Textfeld und w hlen Properities Dort w hlen wir Events Und w hlen f r den Handler die neue Methode aus die urspr nglichen Methoden l schen und fertig Somit wird
103. e Java Platform Standard Edition java awt java awt dnd Y See All Classes 9 AbstractAction Packages AbstractAnnotationValueVisil AbstractBorder ow Provides the classes necessary to create an applet and the classes an AbstractButton java appre applet uses to communicate with its applet context AbstractCellEditor Cort all of ta dl z e mme es e ontains all of the classes for creating user interfaces and for AbstractCollection java awt MM ades e AbstractColorChooserPanel painting graphics and images mim m javaawtcoor pe er Se lt a D d y D Ss cs D K BE AbstractDocument AttributeC ava awt color Provides classes for color spaces AbstractDocument Content vs zxwrdatetramdt Provides interfaces and classes for transferring data between and AbstractDocument ElementE java awl datairanster within applications AbstractElementVisitor6 AbstractExecutorService Drag and Drop is a direct manipulation gesture found in many AbstractinterruptibleChannel REN a Graphical User Interface systems that provides a mechanism to i z T 1 iti a t a M AbstractLayoutCache Jai am LUNG transfer information between two entities logically associated with AbstractLayoutCache NodeL presentation elements in the GUI AbstractList AbstractListModel Provides interfaces and classes for dealing with different types of java awt event e AbstractMap events fired by AWT components AbstractMap SimpleEntry S Abstrac
104. e Project 2 Disclaimer 3 Name and Location Project Location D Daten Ablagen NetBeansProjects Browse Project Folder D Daten Ablagen NetBeansProjects DesktopApplication Application Class desktopapplication1 Desktop pplicatiori Choose Application Shell Project Name esktop pplicationti Basic Application Database Application amp basic application skeleton containing everything needed to start with a general desktop application such as the following a main frame with a menu bar and status bar About box main Application class e implementation of status bar messages and progress indication resource management mechanisms to better handle loading of icons and strings Use Dedicated Folder For Storing Libraries libraries Folders Browse Different users and projects can share the same compilation libraries see Help for details _ Iw Set as Main Project Back Mext een Cancel Help e Basic Application e Database Application Im ersten Schritt soll das Thema Basic Application kurz erlautert werden 14 2 Basic Application Im Sourcepaket des Projektes erzeugt ES DesktopApplicationi Netbeans nach Fertigstellen des Wizard 3 GC Source Packages Klassen Die DesktopApplicationt java ist m f META INF services eine Erweiterung der Klasse EH desktopapplicationi SingleFrameApplication und enth lt Start ncc Lo DesktopApplicationt java und I
105. e hoschy NetBeansProjects example target surefire reports for the individual test results Total time 41 seconds Finished at Sun Jan 02 23 45 24 CET 2011 Final Memory 244 174 er Sinn dahinter ist es nur Projekte die auch erfolgreich getestet werden k nnen berhaupt zu bauen und zu verbreiten Dies tr gt erheblich zur Qualitatssicherung der Software bei 144 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Vorallem werden durch diesen Mechanismus auch Entwicklungsmethoden wie Test Driven Development sehr gut unterst tzt Nat rlich kann man auch die Unit Tests bewusst abschalten bzw berspringen Dies ist zwar eigentlich nicht der Weg wie Maven es vorsieht kann aber manchmal sehr n tzlich sein Z B wenn eine Anwendung Test von einem Service abh ngig ist der in diesem Moment nicht erreichbar ist oder man wei das einer der Tests nicht korrekt funktioniert Realisieren kann man dies mittels folgender Parameter die einfach an das Kommando angeh ngt werden Dmaven test skip true compile und Test skip DskipTests true nur Test skip Dies kann in Netbeans durch ein Custom Goal ebenfalls erreicht werden Siehe dazu Punkt 4 1 Weitere Informationen sowie einige weiterf hrende Beispiele sind unter http maven apache org plugins maven surefire plugin zu finden 18 4 5 Archtypes Archtype ist ein in Maven enthaltenes Projekt Templating Toolkit Umgangssprachlich werden diese Vorlagen deshal
106. e immer noch erledigt werden m ssen Dazu geh ren unter Anderem e CVS ist kein Erstellungssystem d h das CVS legt nicht fest unter welchem Pfad oder wo ein Projekt gespeichert wird e Es gibt dar ber hinaus keine Vorschriften zur Speicherung e Es wird auch nicht festgelegt wie der vorhandene Festplattenspeicher am besten ausgenutzt werden kann e Es bietet keine Hilfe im Allgemeinen e Es hat keine Anderungskontrolle oder hinterfragt nderungen die von Clients auf dem Repository hinterlegt werden e Im Allgemeinen ist das CVS kein Management oder Kommunikations Ersatz es k nnen keine Team Meetings durch das CVS ersetzt werden oder Fragen durch das CVS beantwortet werden e Die gemeinsamen Anderungen von einem Client k nnen nicht nachvollzogen werden Das Repository kann immer nur die einzelnen Anderungen an einer Datei protokollieren welche Dateien zusatzlich dazu noch beim Commit geandert oder hinzugef gt worden sind ist dem CVS nicht bekannt e CVS ist kein automatisches Test Programm im logischen oder programmiertechnischen Sinn Es k nnen auch Fehler im Quellcode auf dem Repository hochgeladen werden was zu keinen Beeintrachtigungen im Projekt fuhrt bis auf die Tatsache dass es m glicherweise nicht funktioniert Es sollte gesagt werden dass manche aufgef hrten Punkte einleuchtend sein sollten Erweiterungen und Erl uterungen dazu bietet auch der Abschnitt Vor Nachteile von CVS 10 3 Geschichte des CVS Die eigentl
107. e von string format otring format holt sich die Werte aus einem Kalenderobjekt hier cal und setzt diese in den String ret ein Dieser String ret wird dann bergeben Die Funktion TimeStamp sieht damit wie folgt aus public static String timeStamp GregorianCalendar cal String rer ee EE d I IS DES FR ISIS ER SI Mt cal s Logger getLogger FotoFiles class getName log Level INFO ret return ret 165 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 21 1 2 Einfuhrung von Fileseparator und Anpassung der URL von Hilfe Wir haben die Separator Methode verwendet mit Hilfe dieser Methode k nnen wir beim Umformen in einen String aus oder in einen abstrakten Pfadnamen einheitlich abspeichern Die einzelnen Elemente werden durch einen Separator Character getrennt und dieser ist stark systemabhangig Durch den Fileseparator haben wir ein einheitliches Trennungszeichen welches in der fileseperator properties festgelegt ist Anhand des Fileseparators haben wir die URL f r den Hilfeaufruf normieren k nnen In der ersten Version des Fotosorters hatten wir als Trennungszeichen dies ist sehr systemabhanging und es k nnte passieren das einige Systeme den Pfad nicht verarbeiten k nnen hier kommt in der neuen Version des Fotosorters der Fileseparator ins Spiel wir ersetzen im Code das Trennungszeichen durch den FileSeparator in der replace Funktion und erhalten somit eine f r alle Systeme einheitliche URL f r di
108. eger Integer parselnt jtf getText atch NumberFormatException ex Logger getLogger Changer class getName log Level WARNING Fehler bei jtf getText tex ret 0 j return ret Quellen e Christian Ullenboom Java ist auch eine Insel e Guido Kr ger Handbuch der Java Programmierung e Stefan Middendorf Java Programmierhandbuch und Referenz e http de wikipedia org e http flyingroblets de 3 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 6 Software Test Max Leopold 15 11 2010 6 1 Was ist ein Test 6 1 1 Aufgaben von Software Test ooftware Tests werden dazu eingesetzt um Fehler in Programmen zu finden Es soll das Restrisiko f r Fehler minimieren und vertrauen in den Code schaffen Das Ziel von Software Tests ist es ein m glichst fehlerfreies Programm an den Kunden auszuliefern Durch die ooftware Test kann aber nicht komplett ausgeschlossen werden dass nicht doch Fehler existierten Deswegen gibt es mehrere Arten von Software Tests um Fehler zu finden und zu vermeiden Einige Testverfahren berpr fen nicht nur ob das Programm fehlerfrei lauft sondern ob es auch der Spezifikation und der Projektplanung entspricht Software Tests haben somit einen hohen Stellenwert um die Softwarequalit t zu erh hen 6 1 2 Welche Arten gibt es e Komponententest Der Komponententest auch Unit oder Modultest genannt dient dazu nur ein bestimmtes Modul zu testen Dabei wird n
109. eien erzeugt siehe 3 3 Diese werden alle in einem bestimmten Verzeichnis erzeugt Javadoc kann mit bestimmten Optionen angepasst werden sodass man zum Beispiel selbst definierte Verzeichnisse angeben kann in die die Dokumentation erstellt werden soll Es gibt zwei Wege die Dokumentation zu erstellen Zum einen in der Konsole Zum anderen in einer IDE Netbeans e Inder Konsole 87 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Der Befehl um Javadoc auszufuhren hat folgendes Schema javadoc Optionen javadoc Das Programm Javadoc Optionen Optionale Parameter Quelldatei en Quelldateien Angabe der zu dokumentierenden Datei en Optionen Auszug d Verzeichnis Verzeichnis in das die Dokumentation gespeichert wird nodeprecated deprecated Tags werden ignoriert verbose Detaillierte Ausgabe von Javadoc Zeigt zum Beispiel Warnungen an e n Netbeans Eine Javadoc Dokumentation kann auch direkt aus Netbeans heraus erstellt werden was um einiges einfacher ist als dies in der Konsole zu tun In Netbeans gen gt ein Rechtsklick auf das Projekt im Projekt Fenster und ein Klick auf Javadoc erzeugen gar O3LdrIU gru v E BJ ep Beispiel java O Eg e re Projekte D0 i JavaApplication gj Quellpal Wey Y EH javai e 8 Erstellen eis Lg Testpak gt Le Bibliothe g Test Bik Ausf hren Debuggen Profil Test tah
110. ein Element zur Darstellung von Text Paar Zeilen Code 162 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik import javafx stage Stage import javafx scene Scene import javafx scene text Text import javafx scene text Fontj import javafx scene paint Color Stage title Personal Hello scene Scene width 250 height 80 content Text fill Color BLUE font Font size L Zi AN y 25 content fei to Worid b Programm kompilieren und starten Personal Hello Hello World 20 5 2 Mediaplayer JavaFX Video Player F r einen Mediaplayer unter JavaFX brauch man nicht viel Code 163 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik def vid file Users tobias NetBeansProjects video src test video clip flv var isPlaying false def myMediaPlayer MediaPlayer media Media source vid def myMediaView MediaView onMousePressed function event if isPlaying myMediaPlayer pause j else myMediaPlayer play isPlaying not isPlaying mediaPlayer myMediaPlayer function run Stage title JavaFX Video Player scene Scene width 600 height 350 fill Color BLACK content myMediaView Diese paar Zeilen Code reichen um einen Multimedia Player mit Play Pause zu erstellen Diesen kann man nun ohne viel Arbeit anderen auf der eigenen Homepage zur Verfugung stellen 20 6 Schlusswort JavaFX
111. ellt Ohne Maven m sste man als Entwickler sich selber das jar besorgen dieses ins Projekt einbinden und richtig platzieren Diese Arbeit nimmt einen Maven ab Mittels Maven f gt man nun entweder h ndisch in die pom xml die entsprechende dependency ein z B dependency groupld log4j groupld lt artifactId gt log4j lt artifactld gt lt dependency gt oder nutzt den komfortableren Weg n mittels des Add Dependency Menus von Netbeans Projects x Files v test Java EE 6 Webapp gt CG Web Pages gt f Source Packages gt D Test Packages gt G Other Sources Se 55 5 0 0 P 8 Tes Add Dependency 1 1 1 gt CG Proje gt wicket Services Download Missing Dependencies Download Javadoc Download Sources Always show non classpath dependencies LJ Show Managed State for dependencies E Add Dependency Groupld l g 00000000 Artifactid log4j 1 2 15 Versian Scope compile e Query SEI Open Projects L l Query log4 L Only NetBeans Search Results P a de huxhornlilith de huxhorn lilith log4j zem m P a de huxhorn lilith log4j v a Ke GC 1 T org metteg eternal log4j 1 2 15 org slf4j slf4j log4j12 activerng activemq altrmi altrmi server impl ii i Y Y ovun Cancel Netbeans f gt dann den obigen Code in die pom xml ein Dies hat auch den Vorteil d
112. em der Abstand zwischen dem Objekt und dem Rand Objekt an dem das Objekt verankert ist auch bei VergroBerung des GUI eingehalten wird Das hei t wird ein Objekt Top Left am Rand des GUI verankert so wird dieser seine Position bei Vergr erung des GUI oben links einhalten 93 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Nach dem Hinzuf gen eines neuen Objektes ins GUI erg nzt wie oben schon erw hnt der Editor den SourceCode mit dem Code des neu hinzugef gten Objektes Properties Binding Events Properties defaultCloseOperatiorEXIT_ON_CLOSE zl ttle Amber Example GUI D Other Properties lalwaysOnTop E lalwaysOnTopSupported V background E 212 200 bounds lt Not Set gt af ig Standardcursor y i extendedState d E tacusCycieRoaot E ad focusTraversalPolicy lt default gt Properties Die Properties erm glichen das Setzen und Ver ndern der Variablen Eigenschaften einzelner Objekte Der Editor wird jede Anderung dynamisch im SourceCode ndern Saar Page Sage XC audi m Space nem NW The Pres mo Design hiton n the Toolbar en abiur you to Iert Ce denon of the Prem cy ee e LS GF ili z jibri Libia Vest HEX mee Goes IFrogerzs sack curd F3 Tz 205 230 dlirayecHrenanz fe Tahona 1 Flan foe egreand B ir Land ew ital LEAD LIT ahe pr ceca omar her Properties Upes Sburzreals Street 3U RETO
113. emester 2010 2011 Seminar an der FH Niederrhein FB Informatik Output Referat Beispiel run Dos Ergebnis fuk 3 ber zc 3 0 g m pom am Tp mm a a meree 1 m G a E BUILD 50 55 80 eerst time 0 seconds Te el u es m Fe m oe or W pas Ergebnis ist r iche EECH 6 3 3 Nachteile Die Nachtteile dieser einfachen Methode sind im unseren kleinen Beispiel schwer erkennbar In gr eren Projekten wird deutlich das viele solcher Kontrollanweisungen den Programm Code un bersichtlich machen Da diese if else und Ausgaben bei der Auslieferung an den Kunden wieder heraus genommen werden m ssen wird ein weiter Nachteil deutlich Das herraus nehmen dieser Kontrollanweisung erweist sich als schwierig da der Unterschied zwischen einer gewollten Verzweigung und einer Kontrollanweisung schwer zu unterscheiden ist Daf r gibt es aber eine einfache Abhilfe die Java selber mitliefert 6 4 Assert 6 4 1 Wasist Assert Assert wurde entwickelt um den Programmcode zu Verifizieren Assert stellt sicher das diese dann auch eingehalten werden Assert geht immer davon aus das die Annahme die der Programmierer stellt wahr ist und gibt nur einen Fehler aus wenn diese Annahme falsch ist Assert gibt es in verschiedenen Programmiersprachen wie C C 6 4 2 Syntax Die Syntax von Assert ist sehr einfach aufgebaut Sie beginnt mit dem Schl sselwort Assert und dannach mit der Annahme die getroffen wird Assert ausdruck
114. en 200 int x 100 101 bankAccountc instance new bankAccouncti 102 instance einzahlen x 103 104 war erfolgreich x instance getGeld ins L 106 110 STest 111 PUBLIC void testAbbuchen throws Exception 112 Ovstem out println abbu chen 113 int x 100 114 bankAccoaunt instance new bankAccount 115 instance einzahlenix 116 instance abbuchenix 117 118 laalz Tlest abbuchen war erfolgreich 0 instance getGeld 119 Abbuchen 51 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Damit sind wir schon mit den beiden Methoden fertig Sie werde erfolgreich getestet bee e testEinzahlen passed 0 0015 A e testAbbuchen passed 0 0015 Aber was macht man wenn man eine Falsche Eingabe Testen m chte Besonders beim Abbuchen sollte man testen ob auch eine Exception geworfen wird wenn das Konto nicht ber genug Geld verf gt Wir brauchen also einen Test der uns eine erwartete Exception hervorruft Um das zu erm glichen kopieren wir uns einfach unseren Test vom Abbuchen und erg nzen folgende Dinge 1 Test expected Exception class Die Annotation o Test bekommt nun einen Ubergabeparameter mit der Exception unserer Methode Damit wird in diesem Test immer eine Exception erwartet 2 Wir ndern den Namen der Methode doppelte Methodennamen sind auch bei Tests nicht erlaubt 3 Wir entfernen instance einzahlen x damit das Konto beim Abbuchen leer ist 122 123
115. en Durch Doppelklick auf Unnamed k nnen Sie den Klassen Namen geben Attribute und Funktionen k nnen durch einen Linksklick auf das entsprechende Element und der Wahl von Create Attribute und Create Operation vergeben werden Im Folgenden wurden den Kindern und Eltern Attribute zugewiesen 23 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik EH Eltern Attributes private String eltern Hans und Marie private int anzKinder 2 Operations Attributes private int Kind 1 private int Kind 2 private String name Lisa private String name Felix Operations Operations public Kind public Kind2 Abb 12 Fertige Class Elemente Die entsprechenden get amp set Funktionen werden automatisch von Netbeans erstellt Nun wird die Klasse Kind1 mit den Eltern verbunden Dazu wird die Klasse Kind1 ausgew hlt Es erscheint neben der Klasse die verf gbaren Verbindungsmoglichkeiten Hier verwenden Sie Generalazisation und ziehen den Pfeil auf die Klasse Eltern Da Sie Kind1 von den Eltern ableiten m chten und die Klasse Eltern Funktionen besitzt erscheint ein neues Fenster in dem Sie gefragt werden ob Sie Funktionen der Eltern in die Kind1 Klasse ableiten m chten Zur Ihrer Veranschaulichung Bena ameet pcm SI Mas Herd ide LI S deg gerbtenm id il degli om ETS Ar C s vd oe De gi des U LJ g ee ee I sa In diesem Beispiel w
116. en Im Dezember gab Google an dass pro Tag 300 000 Android Mobiletelefone verkauft werden Zurzeit besitzt Android als Smartphone Betriebssystem einen weltweiten Marktanteil von 25 96 zum Vergleich Apple s iPohne OS hat einen Marktanteil von 26 19 1 1 Warum stellt Google Android kostenlos zur Verf gung Die Grafik zeigt das weltweite Verh ltnis zwischen Handy Nutzern und Internet f higen PC Nutzern Ende 2007 gab es mehr als 3 Mrd Handy Nutzer wenn man nun davon ausgeht dass 10 in fr her Zukunft mit ihrem Smartphone online gehen ist das ein Markt von 300 Millionen Nutzer Da Google mit Werbung Anzeigen Daten Geld verdient ist dieser Markt f r Google sehr lukrativ Wenn man bedenkt welche Flut an Daten Google zur Verf gung steht k nnte bei Ausnutzung dieser Daten eine genau an die Nutzer angepasste Werbung auf dem Smartphone erscheinen Diese Leistung k nnte sich Google von Werbetreibenden gut bezahlen lassen und somit einen recht klaren Wettbewerbsvorteil ausnutzen So ist es auch m glich in Apps Werbung anzeigen zu lassen Internet and Mobile Phone Users Worldwide 3 000 000 000 2 000 000 000 1 000 000 000 O0 2000 2001 2002 2003 2004 2005 2006 Internet users PC based Mobile phone users 150 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 19 1 2 Architektur von Android APPLICATIONS APPLICATION FRAMEWORK LIBRARIES Media E 2 CP 2 Surface Manage
117. en zeigen wie Software Tests funktionieren Um das Programm verstehen zu k nnen sollte die Eigenschaften des Binomialkoeffizienten verstanden sein Mit dem Binomialkoeffizienten lassen sich die Grundaufgaben der Kombinatorik l sen 38 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik eine f wenn k gt 0 3 u RS E zx wenn amp 0 wenn lt 0 Als Programm in Java sieht die Berechnung des Binomialkoeffizienten so aus public cisss Main public static double Binomialkoerfizent int n inr K i int i double binko 1 LE kon 1 bintga 0 else af k 0 k 72 n i binko i else i binko Binko n fe 1 1 tk i return Hinko public static void maim Straing args 1 inr h EK douple bineomial reel E k 2 binomial bBinsnialkseffizentin amp Systen ort printin frcebnis f r tnt ber 4k 4binomial Wie wir sehen wird eine Methode zur Berechnung des Binomialkoeffizenten aufgerufen Diese Methode hat zwei Ubergabeparameter und gibt das Ergebnis der Berechnung zur ck In der Main Funktion werden drei Variablen deklariert Zwei f r n und k und eine zum abspeichern des Ergebnis Danach wird das Ergebnis ausgegeben Es ist ein kleines Programm aber es sollte ausreichen um die Grundlegenden Test Verfahren zu zeigen 6 2 Statische Methoden 6 2 1 Was sind statische Methoden Die statischen Methoden der Software Tests haben den Vorteil
118. enden Programm sein Als Beispiel will ich hier einmal eine Ausgabe eines gab Debuggers zeigen der den derzeitigen Inhalt eines NSMutableArray der Programmiersprache Objective C ausgibt Dies geschieht mit der Hilfe des po Befehls gdb po array NSArrayM Ox5 10750 gt lt 2 3 4 5 Man kann an diesem Output sehr sch n den Inhalt 1 2 3 4 5 und den Typ __ NSArrayM der Variable sowie die Speicheradresse 0x5f10750 sehen Des Weiteren bieten Debugger die M glichkeit einen sogenannten CallStack einzusehen Beim CallStack deutsch Aufrufliste handelt es sich um eine Struktur mit dessen Hilfe man nachvollziehen kann welche Methode von welcher Methode aufgerufen worden ist e Modifizieren von Daten z B des Hauptspeichers der externen Ein Ausgabe Zustande und der Register des Prozessorkerns Je nach Debugger und Zielsystem ist es auch m glich so genannte Exceptions abzufangen dies sind Fehler die vom Zielsystem zur ck gegeben werden In Java wird z B eine Exception geworfen wenn man nicht in eine Datei schreiben kann in die man schreiben will Moderne Debugger unterst tzen zu dem meist just in time debugging dabei muss das Programm nicht angehalten werden Es wird zur Laufzeit neu kompiliert 8 1 4 Debugger Arten Man unterscheidet grunds tzlich zwischen Debugging und Remote Debugging Als Debugging bezeichnet man das Debuggen eines auf dem eigenen Rechner laufenden Programms mit Hilfe von B
119. entsprechenden Handler nach beliebigen Kriterien zu filtern Filter k nnen auch Loggern zugewiesen werden Besteht der jeweilige Log Eintrag beide Tests wird er vom Handler ver ffentlicht Es muss mindestens ein Handler existieren damit die Ausgabe funktioniert Beispiel eines Filters class TimeFilter implements Filter int start end public TimeFilter int start int end this start start this end end public boolean isLoggable LogRecord r Calendar cal Calendar getInstance cal setTime new Date r getMillis int h cal get Calendar HOUR_OF_DAY return start lt h amp amp h lt end 4 4 Das Java Logging Framework stellt zwei konkrete Handler bereit e Consol Handler Die Ausgabe erfolgt in der Konsole e File Handler Die Ausgabe erfolgt in einer Datei 34 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik e Socket Handler Die Ausgabe erfolgt im Netzwerk Der Handler verfugt Uber einen Formatter der die Log Eintrage zur Weiterverarbeitung in einen String umzuwandelt Die Implementierung eigener Formatter ist ohne groBen Aufwand m glich Das Java Logging Framework stellt zwei Formatter zur Verf gung Der java util logging SimpleFormatter generiert menschenlesbaren Text Der java util logging XML Formatter stellt die Log Eintr ge in Form einer XML Datei bereit 5 3 3 Konfiguration Grunds tzlich wird das Java Logging Framework ber die Datei
120. epa ontconfig 98 bic include er oe ig ke fontconfig 98 properties src O winzz Ee fontconfig bfc H Dir E fontconfig properties src Obin javaws jar m ic jce jar OD lib jsse jar E sample p LH javac is LH jmx managemsn jar amp ine d meta index OD nbproject net properties LO nio L i plugin jar LH scriptin E psfont properties ja LH websefvices 5 psfontj2d properties IS jre1 5 0 D6 Lai resources jar D jret 6 0_07 Lai rt jar ires je sound properties Abb 3 Unter Windows werden durch die Installation typischerweise die gezeigten Ordner angelegt Im Seminar werden wir die Datei logging properties noch brauchen Das JDK beinhaltet neben der Laufzeitumgebung JRE folgende Java Entwicklungswerkzeuge e javac Java Compiler Java Quellcode in Java Bytecode dass e javadoc zur Erstellung der Dokumentation aus Quellcode werden html Seiten e jar zur Erstellung von Java Archive enth lt s mtliche class Dateien Grafiken Textdateien und sonstige Dateien jarsigner zur Signierung von Java Anwendungen oder Bibliotheken htmlconverter Java Plug in HTML Converter e appletviewer ist sehr einfacher Browser der nur die in einem HTML Dokument enthaltenen Java Applets anzeigt und zwar jedes in einem eigenen Fenster gt zum Testen von Applets bei der Programmierung Die aktuelle Version des JDK war zum Seminar 6 Update 21 Die Installation der Netbeansum
121. er FH Niederrhein FB Informatik welche Typumwandelungen notwendig sind Das bedeutet das Programm und GUI zusammenwachsen und man kann diese nicht trennen und z B Quellcode f r Anderes GUI verwenden Binding in Netbeans erm glicht fast automatische Anbindung von GUI Elementen an andere GUI Elemente Variablen oder Funktionen Properties Sogar Synchronisierung zwischen GUI und dem Wert einer Variable kann mit wenigen Klicks automatisiert werden Am einfachsten ist das Verbinden von GUI Elementen Hier k nnen z B Text Field mit einem Schieber direkt ber GUI Editor verbunden werden 13 2 1 Zwei GUI Elemente verbinden Schritt 1 Ausgangssituation Textfeld 2 jTextField1 Schieber jSlider1 Schritt 2 Eigenschaft auswahlen Beim klicken mit der rechten Maus Taste auf Textfeld erscheint PopUp Men In dem Men geht man auf Bind und dann auf gew nschte Eingenschaft In unserem Fall ist das nur eine Eigenschaft text Schritt 3 Elemente verbinden Im ge ffneten Fenster wird Binding verhalten angepasst Als Binding Source wahlen wir unseren Schieber jSlider1 Und unter Binding Expression entsprechende Eingenschaft von dem Schieber Zu beachten Text im Textfeld ist vom Typ Sting und ausgew hlte Eigenschaft vom Schieber ist von Typ int Die Umwandlung passiert hier im Hintergrund Wir h tten auch Text Feld an Schieber anbinden k nnen aber dann h tten wir einen Umwandler gebraucht um int Werte in Text zu
122. ererbung wenn eine Klasse genannt Unterklasse alle Eigenschaften und Attribute einer anderen Klasse genannt Ober oder Basisklasse bernimmt Die Unterklasse kann dar ber hinaus die Funktionen der Basisklasse durch weitere Attribute oder Methoden erweitern Basisklasse Person Attributes name String vorname String g Klassenname Attribute Vererbung Unterklasse Eine Vererbung wird im UML Kassendiagramm durch einen Pfeil mit einer leeren Spitze von der Unterklasse zur Basisklasse dargestellt Assoziation 14 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Attributes Attributes vorname String name String nachname String saldo int Bei der Assoziation handelt es sich um eine Art Kennt Ein Beziehung bei der das Verhaltnis zwischen zwei oder mehreren Klassen verdeutlicht wird Im Klassendiagramm wird die Assoziation durch einen Strich zwischen den Klassen dargestellt Die Anzahl wird dabei durch Kardinalit ten an beiden Enden des Striches vermerkt Aggregation Das Ganze gt Zoran dnt Ein Teil Kardinalitat Zwei Spezialf lle der Assoziation sind die Aggregation und die Komposition Bei beiden handelt es sich um eine Teile Ganzes Beziehung jedoch sind bei der strengeren Komposition die Teile vom Ganzen existenzabh ngig Aggregation und Komposition werden im Klassendiagramm durch einen Strich zwischen den Klassen mit einer leeren
123. ernasch 165 Vorwort An der FH Niederrhein wurde im Wintersemester 2010 2011 mit 18 Studenten ein Seminar zum Thema Netbeans gehalten Im Rahmen des Seminars wurden verschiedene Themen durch die Studenten erarbeitet die sich insbesondere auf grundlegende Programmiertechniken beziehen und durch Netbeans unterst tzt werden Zu der Entwicklungsumgebung IDE Netbeans gibt es bislang nur recht rudiment re Einf hrungsliteratur in Deutsch Um ein empfehlenswertes Buch wie NetBeans Platform 6 Rich Client Entwicklung mit Java von Heiko Bock lesen und verstehen zu k nnen sind sowohl umfangreiche Java als auch Netbeans Kenntnisse erforderlich Aber ein Buch welches auch HalloWelt java in Netbeans erkl rt fehlt bisher Dies hat m glicherweise dazu gef hrt dass in Deutschland Eclipse als Entwicklungsumgebung deutlich mehr verbreitet ist denn hierzu gibt es eine Vielzahl von Einf hrungsb chern in Deutsch Jedoch ist Netbeans auch unter vielen Entwicklern die IDE der Wahl und sollte auch deutschsprachigen Studenten noch h ufiger nahe gebracht werden Ziel des Seminars war es deshalb auch ein seminarbegleitendes Skript zu erstellen welches ein wenig die L cke schlieBt und Einsteigern den Zugang zu Netbeans erleichtern kann Netbeans wurde entwickelt und unterst tzt von SUN die auch Entwickler von Java selbst sind SUN wurde nun durch Oarcle bernommen Manches andert sich dadurch in der Java Um
124. erties Das Zuweisen der Werte erfolgt nun durch bearbeiten der ersten Properties datei diese speichert dann die neuzugewiesen Werte in der jeweiligen Locale Properties Datei ab dies sieht dann wie folgt aus FindDialog java a Bundle properties X FindDialog jCheckBox6 text Search Selection Buscar Sleccion FindDialog jCheckBoxl text Match Case Frase exacta Comment v Auto Resize Mew Property Remove Property Hier sehen wir eine ge ffnete Bundle properties datei In der linken Spalte haben wir die Keys die die Bezeichnung aus der oben gezeigten Benutzeroberfl che tragen Die mittlere Spalte hier enth lt englische Begriffe das sind die zu den Keys geh renden Values aus einer Englischen Locale datei die als default language also Standardsprache gew hlt wurde In der rechten Spalte sehen wir nun die Werte die in einer anderen Locale hier einer spanischen abgespeichert sind Die Werte k nnen durch ein Klicken in die jeweilige Zelle bearbeitet werden Wenn man nun eine weitere Sprache hinzuf gen m chte so ist der einfachste Weg im Inspector unter Design Locale eine neue SPrahce auszuw hlen Netbeans legt dann automatisch die passende Bundle datei an 129 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Die angelegt Locale Properties datei l sst sich nun ber die Bundle properties datei bearbeiten in unserem Beispiel bild m sste man dazu nach rechts s
125. ets log e loggingProperties put java util logging FileHandler limit 28 LOG HE jis 29 loggingProperties put java util logging FileHandler count 30 IR Jl loggingProperties put java util logging FileHandler formatter 32 java util logging XMLFormatter ES loggingProperties put java util logging FileHandler level 34 ALL os 36 Weitere Konfiguration einzelner Logger 37 loggingProperties put de flyingroblets billing level 38 INFO 39 40 Properties an LogManafer bergeben 41 42 PipedOutputStream pos new PipedOutputStream 43 PipedInputStream pis new PipedInputStream pos 44 45 loggingProperties store pos 35 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 46 pos close 47 LogManager getLogManager readConfiguration pis 48 plis Closet 49 50 j 5 3 5 Konfiguration via java util logging config file Wurde die System Eigenschaft java util logging config class nicht gesetzt kann java util logging config file gesetzt werden um eine Konfigurationsdatei zu setzen O1 THHHHHHHHHHHHHHBHHHBHHHHHHHHBHHHHHHHBHHHHHHHBHHHBHHHHHHHBHBHHBE 02 Global properties OS THHHHHHHHHHBHHHHBHHHHBHHHHHHHHBHHHHHHHBHHHHHHHBHHHBHHHHHHHBHBHHBE 04 level ALL 05 handlers java util logging ConsoleHandler java util logging FileHandler 06 O7 THHHHHHHHHHHHHHBHHHHHHHHHHHHBHHHHHHHBHHHHHHHBHHHBHHHHBHHHBHBHBE 08 Handler specific properties 09 De
126. ews 3 2007 Java J2bEE JEE junit4 html http www youtube com watch v 8eeKvYurFU8 http www mkyong com unittest junit 4 tutorial 6 parameterized test http www java2s com Tutorial Java 0540 JUnit assertEqualsStringmessageexpectedactua Itolerance htm Linkstand 23 12 2010 06 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 8 Netbeans Debugger Tim Ingensiep 22 11 2010 8 1 Was ist ein Debugger 8 1 1 Allgemeine Definition Ein Debugger ist ein Programm was dazu dient Fehler im Quellcode zu finden und diese zu analysieren 8 1 2 Namensherkunft Der Name Debugger leitet sich aus dem englischen Wort bug ab Ein Bug ist ein Fehler in einem Computer System Die Bezeichnung Bug wurde von Grace Hopper gepr gt dieser fand bei einer Uberpr fung eines Rechners eine Motte Die Motte war f r den Ausfall eines Relais im Rechner verantwortlich Er klebte die Motte ins Logbuch und schrieb folgenden Satz daneben First actual case of bug being found Das erste Mal dass tats chlich ein Bug gefunden wurde 8 1 3 Allgemeine Funktionen e Steuerung des Programmflusses durch Breakpoints deutsch Haltepunkte und Einzelschritt Verarbeitung von Programmbefehlen e nspizieren von Daten Moderne Debugger stellen Wege zu Verf gung den Inhalt eines Registers anzuzeigen Dies kann je nach Debugger als Assembler oder Hochsprache Output erfolgen Daten k nnen z B auch Variablen im ausf hr
127. exander Nolting 2071 2010 85 Goftware Dokumentaton nennen 85 e ee 86 Funktionsweise von Javadot e 86 Bee EE 89 Was leistet JAVAGOG Ten 89 l QUICHE eaaa EO E ERON 89 12 NetBeans GUI Editor Artur Schmidt 06 12 2010 eeseeseeeseeeeeeeeee 90 doa delle UMS east atic dot ui ate ght enlarged adis atten feta tad di an fecta dd add 90 12 2 Erstellung einer graphischen Benutzerobertl che nennen 90 Qs ME Sancio D ee To Dt Pc 95 124 Ouellet xtatis otia amt ee M M LM M 95 13 GUI Editor Il Beans amp Binding Vladimir Komarov 06 12 2010 96 lo BEANS ININGIDEANS ere 96 19 2 BINGINGUNANGIBEANS EE 98 14 Java Desk Op ABPBIICAUON mee 102 15 PME ad EE 102 14 2 Basi APPIAN ME 103 14 3 Erl uterungen zum erzeugten Code 104 14A E E ET 106 14 5 Arbeiten mit dem Action Dialog nnn 106 15 Desktop Application Database Alexander Zitzer 20 12 2010 113 15 1 Datenbanken unter Netbeans ccccccecccececececeeece cece eeceeeseeeseeeseeeseeseeseeeseeeees 113 15 2 MySQL Daterbank verbinden 2 eth oo En sodes ee toe eoe eet nest 113 15 3 Datenbank erstellen und bearbeiten sees 114 154 OUS ee 123 16 Internationalisierung Paul Bernasch 20 13 2010 128 1612 Was IstInternalonallsierUng Z aussen ee 128 16 2 Wie funktioniert Internationalisierung nenn nenn nano nenn nennen 128 16 3 Noch zwei zusa
128. fachen Konfigurationsdatei Dies ist ein Kommentar Dies ist ebenfalls ein Kommentar wenig Text pi 3 14 lang de vieltext Dieser Text l uft ber zwei Zeilen paramText Text mit dynamischem Parameter 0 31 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Das Beispiel enth lt zwei Kommentarzeilen und definiert f nf Werte fur die Namen wenig pi lang vieltext und paramText Wie sich aus dem Beispiel erkennen l sst gibt es Kommentarzeilen die mit einem Doppelkreuz oder einem Ausrufezeichen beginnen und Datenzeilen in denen ein Name und ein Text definiert werden Name und Text k nnen auf drei Arten voneinander getrennt werden wobei die Trennzeichen nicht zum Schl ssel oder Text geh ren 1 durch ein oder mehrere Leerzeichen Im obigen Beispiel hat der Schl ssel wenig den Wert Text 2 durch ein Gleichheitszeichen umgeben von keinem oder beliebig vielen Leerzeichen Im obigen Beispiel hat der Schl ssel pi den Wert 3 14 3 durch einen Doppelpunkt umgeben von keinem oder beliebig vielen Leerzeichen Im obigen Beispiel hat der Schl ssel lang den Wert de Ein umgekehrter Schragstrich am Ende der Zeile bedeutet dass der Text in der nachsten Zeile weitergeht 5 3 Java Logging Framework 5 3 1 Logger Application aal Ri ai gut Lagger cr Handler 5 F i destinatian d
129. fachung des Datumformates in Timestamp Wir schrieben eine Funktion Timestamp die uns aus einem Kalenderobjekt oder einem Bild einen formatierten String ausgibt so dass wir nach diesem String die Bilder sortieren k nnen In der ersten Version des Fotosorters wurde in Timestamp jeder Wert einzeln aus dem Datum ausgelesen und in den String ret gespeichert Der Code sah zu dem Zeitpunkt wie folgt aus private String timeStamp File file int years int months int days int hours int mins boolean save String r t WU try if file exists GregorianCalendar cal new GregorianCalendar cal setTime new Date file lastModified cal add Calendar YEAR years cal add Calendar MONTH months cal add Calendar DAY OF MONTH days cal add Calendar HOUR OF DAY hours cal add Calendar MINUTE mins int mo cal get Calendar MONTH 1 int da cal get Calendar DATE int ho cal get Calendar HOUR OF DAY int mi cal get Calendar MINUTE ret cal get Calendar YEAR ret mo lt 10 O mo mo ret da lt 10 X503 da suas ret ho lt 10 2 0 ho ho ret mi lt 10 0 mi mi if save file setLastModified cal getTimeInMillis else System out println File does not exists catch Exception e e printStackTrace return ret Durch die Veranderung in Timestamp ist der Code auf zehn Zeilen reduziert und zwar mit Hilf
130. filer Abbildern f r die nachtr gliche Bearbeitung Profiling von entfernten VMs ber Netzwerkprotokolle Durch Integration in DIE lassen sich sehr einfach Performance und opeicherprobleme aufsp ren 1 1 4 Tests Ein wichtiger Schritt parallel zum Entwickeln der Software ist das Testen und viele Autoren meinen sogar dass der Test vor der Entwicklung stehen sollte Deshalb werden auch 2 Vortr ge des Seminars dem Testen gewidmet 1 1 5 Versionieren und Dokumentieren Ohne Versionsverwaltung heute keine Softwareentwicklung mehr Deshalb ein Blick in dieses umfangreiche Thema Durch NetBeans werden folgende Versionskontrollsysteme direkt unterst tzt e CVS e SubVersion SVN e Mercurial e ClearCase ber den Plugin Manager Unterst tzung f gt sich in den typischen Programmierworkflow ein und versteckt die abstrakte Bedienung mittels bekannter Befehle Die IDE erkennt automatisch Arbeitsverzeichnisse und listet alle ge nderten Dateien im Versioning Window auf Die Versionsunterst tzung ist ebenfalls in das Projektsystem und in die Refactoring Funktionen integriert Typische Funktionen des Versionskontrollsystems sind direkt ber das Kontextmen zu erreichen Die Verwaltung von mehrere Repositories und Branches ist auf einfache Weise m glich Das Versioning Window zeigt einen Uberblick ber den Status von Dateien Ordnern Paketen und Projekten Mit dem Kommando Diff k nnen Unterschiede zwischen den einzelnen Versionen angezei
131. form gt lt br gt Kelvin lt input readonly readonly value z mHHLWOLILt lt br gt t antwort errt gt lt center gt lt body gt In diesem Beispiel sehen wir einen einfachen TemperaturmaBeinheitenumrechner Dabei wurde ein Skriptlet an den Anfang der JSP Datei gestellt Dieses Skriptlet berechnet uns beim klicken des Berechnen Buttons die Temperatur in Kelvin Es wurde ganz normaler Java Code eingef gt Im unteren Teil wird das HTML Dokument aufgebaut das dann mit den Werten gef llt wird welche das Skriptlet berechnet 139 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 18 Projekt und dependency management mit Maven Holger Jansen 03 01 2011 18 1 Was ist Maven Maven ist ein von der Apache Foundation entwickeltes Tool f r automatisiertes build und Dependency Management oeine besonderen St rken liegen in automatisierten Tests dem project build und dem bereits angesprochenem Dependency Management Des weiteren zeichnet es sich durch seine Plugin Architektur aus Dies macht es sehr flexibel und somit f r viele Anwendungsgebiete nutzbar Genaueres dazu kann unter folgendem Link nachgelesen werden http maven apache org plugins index html Dort findet sich auch eine kleine Auswahl an Plugins zum nachschauen und spielen 18 2 Warum Maven In der Praxis w re es zu umst ndlich alle Klassen von Hand anzugeben und mittels javac selber zu kompilieren Diese Arbeit
132. gebaut wird Dieser generiert einem die komplette Ordnerstruktur inklusive einiger otartklassen Unit Tests und allen ben tigten Dependencies etc Probieren Sie es doch einfach mal aus ACHTUNG Dauert beim ersten ausf hren recht lange da zuerst alle ben tigten Dependencies heruntergeladen werden m ssen In Netbeans versteckt sich diese Funktionalitat hinter dem New Project Wizzard 145 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik New Project Steps Choose Project 1 Choose Project Categories Projects 2 D Java lib Maven Projec rid Java Web Maven Web Application 3 Java EE Maven EJB Module 3 Java ME Maven Enterprise Application BS Maven OSGi Bundle Groovy im NetBeans Modules B5 Maven NetBeans Module gt D Samples E Maven NetBeans Module Suite 5 Maven m Maven NetBeans Application lg Maven Project with Existing POM Description Maven2 project templates created with Maven s own Archetype Plugin Wahlt man nun nur Maven Project gelang man nun zu folgendem Dialog E New Project X Steps Maven Archetype 1 Choose Project Select a Maven archetype as a template for your project Maven Archetype Maven Archetypes 3 Name and Location ER ee ii Swing Application Framework JSR 296 Archetype 1 0 v Default Archetype Catalog z lig Atlassian Confluence plugin archetype RELEASE i lis Atlassian JIRA plugin archetype 5 lg JPA applicat
133. gebung aber mit Netbeans geht es aber entsprechend weiter Hier nur einige Gr nde f r den Erfolg von Netbeans e ntuitiver GUI Designer f r Swing Selbst ohne Swing Kentnisse kann der User mittels drag amp drop tolle Oberfl chen erstellen und direkt nutzen e Umfangreiches Refractoring e Einer der Besten Code Profiler Speicher CPU und Performance Probleme werden transparent 3 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik e UML Unified Modeling Language Unterstutzung hier gibt es aber seit der Version 6 7 Anderungen e Ant Integration e J2ME nach dem ersten Durchschauen des Einf hrungstutorial lassen sich direkt kleinere Anwendungen mit Netbeans programmieren e Integriertes Update Center e Tomcat Support kommt im Bundle mit Apache Tomcat Nach Erstellung einer Web Application mit JavaServer Pages jsp lasst sich diese direkt starten 1 Einfuhrung 1 1 Softwareentwicklung Netbeans unterstutzt die einzelnen Schritte der Softwareentwicklung Die Studenten sollen deshalb auch in dem Seminar einige Bausteine der Entwicklung von Software kennen lernen Idee Skizze Entwicklung Dokumentation Auslieferung Abb 1 Typischer Entwicklungsprozess einer Software 1 1 1 Ideenentwicklung mit UML Bis zur Version 6 7 gab es in Netbeans ein UML Plugin Die Entwicklung wurde eingestellt Stattdessen kann man innerhalb Netbeans nun mit dem Plugin von Visual Para
134. gebung erfolgt versionsbezogen je Version in separate Ordner 8 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik E Arbeitsplatz README re Boot C1 NetBeansTM IDE 73 Dokumente und Einstellungen E Programme e NetBeans IDE is an integrated development environment IDE for writing compiling E EA apisupporti testing and debugging desktop applications and web applications for the JavaTM platform 2 bin NetBeans IDE includes a full featured text editor with syntax highlighting and error 8 nn checking visual design tools Ant support version control system support and many other a gsf features 3 harness To start the IDE Microsoft Windows use one of these methods n Double click the NetBeans IDE icon on your desktop B Gy java Choose Start gt All Programs gt NetBeans gt NetBeans IDE 6 1 amp E nb amp 1 Start the IDE at the command line C gt netbeans install directory bin netbeans exe iL platforms To stop the IDE e ee From the IDE choose File gt Exit B xmlz To uninstall the IDE Microsoft Windows Use the Add Remove Programs utility Do not manually delete the directories and files Ca 25 OMByte NetBeans IDE user directory A default user directory is created the first time you start the IDE It is used to store your user settings options and runtime data for personal development servers On Microsoft Windows Vista systems this director
135. gen brauchen Sie unter Windows spezielle Treiber die in der Windows Version enthalten sind Wenn Sie auf Mac OS X oder Linux entwickeln brauchen Sie keine speziellen Treiber Im Paket gibt es als Einf hrung in Ihre ersten Anwendungen Beispielcodes und fertige Anwendungen f r jede Android Entwicklungsplattform 153 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Die SDK enth lt eine lokale Kopie der neusten Dokumentation f r das Android API Framework welche online unter http developer android com index html zu erreichen ist 19 2 2 Emulator erstellen Um ein Emulator zu erstellen auf den Sie sp ter debuggen starten Sie den Android SDK and AVD Manager Diesen Manager brauchen Sie um Emulator oder neue Komponente zu installieren oder vorhandene Komponenten zu upgraden Unter Ihr SDK Verzeichnis gt tools finden Sie das Tool android das Sie per Konsole oder mit einem Doppel Klick ausf hren k nnen nun ffnet sich dieser Manager Android SDK and AVD Manager List of existing Android Virtual Devices located at Users Dominic android avd Installed packages AVD Name Target Name Platform API Level FARR Available packages Dominic Android 2 3 2 3 9 l Settings About i Refresh v A valid Android Virtual Device 4 A repairable Android Virtual Device X An Android Virtual Device that failed to load Click Details to see the error Virtual devices
136. gen Einschr nkungen f r den privaten Gebrauch nutzen k nnen In diesem Skript wird lediglich der Gebrauch des UML Plugins bis zur Netbeans IDE 6 7 erkl rt da der Umfang und die gebotenen Funktionen des Plugins von Visual Paradigm die Ausma e des Skriptes sprengen w rde 4 4 Erstellung eines Projekts mit Arbeitsbereichs bersicht Im folgenden Kapitel erfahren Sie wie Sie ein neues UML Projekt erstellen und den Diagrammtypen ausw hlen Weiterhin wird der Arbeitsbereich kurz veranschaulicht 4 4 1 Erstellen eines Projektes mit UML Nachdem Sie Netbeans gestartet haben erstellen Sie ein neues Projekt Dazu gehen Sie unter dem Men punkt File auf New Project Nun ist folgendes Fenster zu sehen 20 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik wl feces phy tr Us ug 1 eg Gp p ret ic cred pees nre Log are br nie reidai Abb 8 New Project Fenster W hlen Sie nun die Option UML unter Categories und Java Platform Model unter Projects Best tigen Sie mit dem Next Button worauf folgendes Fenster erscheint ei Crowle How Heyran L Create Have piagam nr Dagar Te 1 eiets Chay om Lung rr Mote ber Dover Lr EAE LEAL ri Faclaaacu Abb 9 Create New Diagram Fenster Hier k nnen Sie nun zwischen verschiedenen Diagrammarten w hlen Nachdem Sie sich f r eine Diagrammart entschieden haben m ssen Sie nur noch mit dem Finish
137. geschrieben Wir schauen uns nun unsere Interessanten zwei Methoden einzahlen und abbuchen an 50 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 94 1 35 56 27 BTest 98 i public void testEinzahlen throws Exception EI System out printin einzahlen i00 int Xx GF 101 bankAccounrc instance new bankAccount 102 instance einzahlen x 103 OT Ste the ge m sc 104 fail The best Gase if a Grototvpe HA 105 106 107 108 109 116 ETest iii t public void testAbbuchen throws Exception 112 5ystem out println abbuchen 113 int x 0 114 bankAccount instance new bankAccount 115 insctance abbuchen x 116 D Ai 117 fail The best Case i15 A protorype ah be 11 JUnit hat uns unsere angekUndigten 95 bereits generiert Durch Test wird eine Testmethode angekundigt die schon alles bis auf einige Assert Befehle beinhaltet Wir m ssen nun lediglich anstelle der fail Methode unseren Testfall schreiben Beim einzahlen pr fen wir nun mit assertEquals ob ein einzahlen von 100Euro erfolgreich war Beim abbuchen pr fen wir ob man 100Euro auch wieder abbuchen kann hierbei sollten wir aber darauf achten dass auch Geld auf dem Konto vorhanden ist Sonst w rde unsere Methode eine Exception werfen Einzahlen 97 ETest ag public void testEinzahlen throws Exception 99 sysctem ncout printlin einzahl
138. gt werden Zus tzlich zu dem Quelltext k nnen auch Projektmetadaten verteilt werden Zus tzlich zu den entfernten Versionkontrollsystemen f hrt NetBeans f r jeden Quelltext eine so genannte Local History Uber diese ist es m glich auch ohne die Unterst tzung einer Versionskontrolle Anderungen am Quelltext zu verfolgen und gegebenenfalls r ckg ngig zu machen Zum Schluss wird dann noch ein Blick auf Kenai geworfen die noch existierende Web Plattform f r gemeinsame Javacode Entwicklung Daran schlieBt sich die Dokumentation mit Javadoc an 6 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Javadoc ist ein Software Dokumentationswerkzeug das aus Java Quelltexten automatisch HTML Dokumentationsdateien erstellt Es wurde ebenso wie Java von Sun Microsystems entwickelt und ist seit Version 2 ein Bestandteil des Java Development Kits Die Dokumentation kann somit durch spezielle Kommentare im Quelltext erstellt werden Dadurch k nnen Beschreibungen f r Interfaces Klassen Methoden und Felder ber spezielle Doclet Tags definiert werden Netbeans generiert automatisch Dokumentationsseiten in HTML 1 1 6 Ist dies alles Nein die Netbeans IDE unterst tzt bei vielen weiteren Softwareentwicklungsschritten Im Seminar kann hier nur ein erster Eindruck gegeben werden und es schlieBen sich Themen wie GUI Editor Desktop Applications Datenbankanbindung Internationalisierung Web Applications
139. her Test Go b f libraries Navigator 5 So Ce BRI Clean and Build Build with dependencies Clean Generate javadoc Run Debug Profile Test Alt F6 Custom b Set Configuration r Show Dependency Graph Reload Project Set as Main Project Open Required Projects Close In diesem Kontextmen sind die g ngigsten Goals direkt enthalten und k nnen mittels Klick ausgef hrt werden Netbeans setzt dies dann in die entsprechenden Maven Kommandos um Unter dem Punkt Custom k nnen noch weitere Goals mit Parametern konfiguriert werden 141 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Run Maven Goals Profiles Properties Recursive with Modules LJ Update Snapshots LJ Build offline L Show Debug Output L Skip Tests L Remember as 18 4 2 Convention over Configuration CoC CoC bezeichnet ein Software Paradigma Dieses Paradigma kommt auch bei Maven zum Einsatz und ist einer der Gr nde warum es den Umgang und die Einarbeitung in Maven so einfach macht Allgemeines zu Convention over Configuration k nnen hier entnommen werden http de wikipedia org wiki Konvention vor Konfiguration http en wikipedia org wiki Convention over configuration Explizit auf Maven bezogen wird dies mit unter anderem folgenden Zielen eingesetzt e Komplexitat von Konfigurationen zu vereinfachen Schnellerer und einfacher Durchblick in Projekten gt h here Wartbarke
140. hl in der Implementation als auch im Mechanismus Bislang ist OpenC VS noch nicht ver ffentlicht 10 7 Local History in Netbeans Im letzten Abschnitt geht es um die Local History die im Applet Netbeans seit der Version 6 0M7 fester Bestandteil ist Die Local History ist sozusagen die lokale Versionierung der 82 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Dateien indem vorangegangene Anderungen lokal abgespeichert und wiederhergestellt bzw verglichen werden k nnen Um die Local History aufzurufen kann man mittels Rechtsklick auf die entsprechende Datei unter dem Punkt Local History die hinterlegten Speicherst nde begutachten NetBeans IDE 5 0 Java pplication1 Hle Edt ew Harigate Source Refacor Buld Run VS Management Toos Widow Help i I Bi il JI E v Sp eo am E H n Runtime Proja X Favorites ETEA jaa X IS netbeans hmi x tm njara x MBA ha DulldNeuronNekrwod 8 Javanpolications see Par ale eye Se oum El Source Packages i Mare Buidh 13 public class Main och BI ri E a is L SS Fie Size 5l x 238 Creates a new instance of Main Modification Time j ini E SC ma Cahen pes zB NeFrameja DE See a FI is NeuralekwarkFuc Run File Shift FB rer azip ar ja 1 Debugle CouShILES as pe E E NeApplicationt buch Cut Cris e d new double i k i Geste e EJ
141. ich auch nicht f rderlich f r eine Unterst tzung von JavaFX auf einem Smartphone 20 4 JavaFX 2011 Letztes Jahr verk ndete Oracle dass JavaFX in Version 2 im 3 Quartal 2011 erscheint JavaFX2 0 soll auch wieder OpenSource werde laut Oracle JavaFX2 0 enth lt einige sehr gro e Anderungen Es f llt z B JavaFX Script weg Mit JavaFX Script wurden bisher JavaFX Apps erstellt Anstelle dessen wird dann die Java API genutzt Dadurch sollen sich andere oprachen auch nutzen lassen und auch Performance gewonnen werden Des weiteren erh lt JavaFX2 0 eine hardwarebeschleunigte Rendering Engine und neue User Interface oteuerelemente Es wird auch das Zusammenspiel mit HTML5 massiv verbessert Oracle gibt auch an das JavaFX2 0 insgesamt schlanker und vor allem deutlich schneller werden soll In der API sollen dann Java 2D OpenGL Hotspot VM Stack als auch JavaScript und HTML5 enthalten sein Zu dem Mobile Bereich von JavaFX wurde sich nicht geaussert Ansonsten kann man zumindest wieder Licht am Ende des Tunnels f r JavaFX sehen 20 5 Beispiele 20 5 1 Hello World Erstellen eines JavaFX Projektes Steps Choose Project 1 Choose Project Categories Projects Pre E Java Fx JavaFX E JavaFX Businessanwendung auf Desktop 3 Java Web JavaFX Businessanwendung auf Mobilger i Java EE Java ME LO Maven PHP Ruby Groovy C C _ NetBeans Modules _ Samples f Da bk Pare PREC bt bP ree REPRE Le FP OP Pk LE BE Lh PEEL Pha
142. iche Historie des CVS beginnt im Jahre 1986 als Dick Grune erste Code Segmente ver ffentlichte Diese als Grundlage diente das bisherige Verwaltungssystem bestehend aus RCS Revision Control System und SCCS Source Code Control System sollte den zu diesem Zeitpunkt otatus Quo abl sen Das Projekt CVS wurde in den folgenden Jahren konsequent weiterentwickelt und im Jahr 1989 entstand CVS endg ltig Die Version 1 0 wurde am 19 November 1990 finalisiert CVS nutzt bei seiner Versionierung das gleiche Datenformat wie RCS und ist insgesamt sehr an seinen Vorganger angelehnt Die ersten Versionen waren dabei noch auf Kommandozeilen Basis und erst in sp teren Versionen wurde eine graphische Oberflache der Standard des CVS Heutzutage wird CVS vorrangig bei der Entwicklung von Open Source Projekten eingesetzt wobei auch dort neuere Versionierungs Software zum Einsatz kommt womit sich im Abschnitt Alternativen zu CVS besch ftigt wird Zum CVS sei noch gesagt dass die Entwicklung seit ca 2006 bzw 2008 nicht mehr in seinem vollem Umfang betrieben wird Es werden zwar noch einzelne Bugfixes vorgenommen aber an einem kompletten Versionsupdate wird nicht mehr gearbeitet 10 4 CVS in Netbeans Wenn in den bisherigen Abschnitten Fragen an der Vorgehensweise des CVS aufgetreten sind dann werden sie in diesem Abschnitt hoffentlich beantwortet werden k nnen 77 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informa
143. icht die Funktionalit t eines ganzes Programms getestet sondern nur eine Komponente daraus Diese werden dann unterschiedlichen Testarten ausgesetzt e Integrationstest Der Integrationstest testet ob Module sich in das bestehende Programm eingliedern k nnen und keinen neue Fehler verursachen e Systemtest Der Systemtest testet das ganze System Dies geschieht beim Softwarehersteller selber Dabei wird so gut wie m glich probiert die Bedingungen des Kunden nachzubilden Ein Softwaretest f r ein ganzes System kann teilweise Tage dauern e Abnahmetest Der Abnahmetest wird beim Kunden selber ausgef hrt Die Software wird dabei beim Kunden installiert und genutzt Sollte der Kunde einen Fehler finden stehen direkt einige Programmierer bereit die die Fehlerhafte Komponente zu berpr fen e White Box Beim White Box Test ist dem Tester der Quellcode bekannt Der Tester wei also was das Programm macht Das kann beim Testen Vorteile haben da der Tester eventuell den Fehler direkt lokalisieren kann e Black Box Beim Black Box Test ist der Quellcode dem Entwickler nicht bekannt Durch diese Testart k nnen auch externe Tester eingesetzt werden ohne Angst vor der Betriebsspionage zu haben In dieser Ausarbeitung werde ich auf verschiedene Arten des Komponententest eingehen AuBerdem ist der Quellcode bekannt also handelt es sich dabei um das White Box testen 6 1 3 Beispiel Ich werde in dieser Ausarbeitung anhand des Binomialkoeffizient
144. ie Abb 24 Fertiges Use Case Diagramm 28 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 4 5 3 Erstellen eines Activity Diagramms Zun chst wird ein neues Projekt erstellt und als Diagrammtyp Activity Diagram angew hlt Danach f gen Sie Ihrem Diagramm ein Partitionselement hinzu und vergeben diesem einen Namen Kundenfehlerbersht Abb 25 Partitionselement Die Partition teilen Sie in 2 Bereiche auf dazu Rechtsklick in der Partition und im Kontextmen unter Partitions finden Sie die M glichkeit Partitionen hinzuzuf gen und zu l schen LI K mag nn Control x Decision gt Horii Select All Strg A Invert Selection Select All Similar Elements ata Resize Element to Contents Set Dimension Synchronize Element With Data Add Partition Column to the Right Partitions gt Add Partition Row to the Bottom Delete this Partition Column Fonts amp Colors gt Apply Design Pattern Wal Abb 26 Kontextment Partition Es wurde eine Partition rechts hinzugef gt und den 2 Partitionen Namen vergeben Danach wurden Invocation Elemente hinzugef gt Kunden Fehlerbericht Kunde Programmierer um ime Abb 27 Partition mit Invocation Elementen AnschlieBend werden die Elemente mittels einer Bedingung miteinander verbunden Die Verbindungen k nnen mittels Linksklick Labels Show Labels angezeigt und umbenannt werden Den Invocation E
145. ied Based On LOCAL package javaApplication z package javalpplication IPUBTIE class Main jpublic class Main public Maint o Su pub 1c HU ES E M mm Abb 38 Diff Anzeige 80 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Merge Conflicts Aesoher bie lie AR comic 1 of 1 Uneesdived Accept Accept amp Meat Accempl Accegt amp Mast 13 13 e 14 14 15 a 15 1b lis ly public static void mainistringL args Le public static void maintstring args 1 18 fh commie Deg 15 ji conFHiet 2 15 19 e d ji a i Local Working Fila Remote hie 12 public class Main H 13 14 15 16 na a l1 public statie void mainistrir L Mesut after marge Milaim ig Abb 39 Merge Conflicts Resolver 10 5 Vor Nachteile von CVS In den vorherigen Abschnitten wurde die Funktionsweise von CVS beschrieben und auch ein Einblick dar ber was CVS ist und was es nicht ist wurde gegeben Hier werden nun einige Vor und Nachteile aufgef hrt die dieses Versionierungs Tool bietet oder woran es einen Nachteil zu anderen Versionierungs Tools aufweist Vorteile e Gleichzeitiges Bearbeiten von Dateien e Automatische Abgleichung von Anderungen und Konflikten e Versionierung e relativ sicher d h das Repository kann durch Sicherheitsmassnahmen Passwortschutz vor Fremdzugriffen gesch tzt werde
146. iert Kann nicht editiert werden Das Design und SourceCode Fenster ist so gesehen Ihr Arbeitstisch auf dem Sie Ihren GUI erstellen Die im Fenster existierendes GUl grau in der Abb 2 und der SourceCode siehe Abb 3 und 4 werden schon bei der Erstellung des JFrames vom Editor automatisch erzeugt Als Standard k nnen die Eigenschaften Position Backgroundcolor u s w der Objekte im oourceCode nicht manuell editiert werden Der Editor wird den Code selber dynamisch erg nzen oder andern falls Sie etwas im Design Modus andern Dadurch bernimmt der Editor die meiste Arbeit und der Entwickler kann sich somit auf das Design des GUI konzentrieren source Design ER E ES SEI a ds e VA Ausrichtungs Buttons vertikal horizontal okalierung Preview Button Changer Connection Mode Auswahl Mode source Design Mode Buttons Abb 47 Buttons von SourceCode Design Fenster e Source Design Buttons damit wechseln Sie zwischen SorceCode Design Ansicht e Auswahl Mode erm glicht das Auswahlen von einzelnen mehreren Objekten 92 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Connection Mode verbindet Objekte miteinander fur einen Event Preview Button erm glicht eine Vorschau des GUI Ausrichtungs Buttons richtet ausgew hlte Objekte aus vertikal horizontal Skalierung Changer setzt 2 horizontal vertikal Anker und erm glicht somit das Skalieren von Objekten relativ zur Fenstergr e mend t
147. iesen werden Der Editor erstellt dann den gewunschten Event automatisch Tritt der Event ein welches einem Objekt zugewiesen wurde wird dieser von dem EventListener deutsch eher Event Beobachter abgefangen registriert und leitet diesen an EventHandler weiter Nachdem ein Event f r ein oder mehrere Objekte erstellt wurde wechselt der Editor automatisch von Design in die Source Abb 52 Erstelltes Event Der Code der das Ansicht genau zu der Stelle im Code wo Event ausf hrt muss manuell editiert werden der Event vom Editor erstellt wurde siehe Abb rot markiert da die Anweisungen im Event noch manuell editiert werden m ssen 12 4 Quellen http download oracle com javase tutorial http www thenewboston com http wiki netbeans org UsingGUIEditor http Awww youtube com watch v LFr06ZKIpSM 95 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 13 GUl Editor Il Beans amp Binding Vladimir Komarov 06 12 2010 13 1 Beans in NetBeans Beans sind eigene benutzerdefinierte Komponente in NetBeans Um ein Beans zu erstellen reicht es schon Klasse zu kompilieren und ber rechte Maustaste zur Palette hinzuf gen Zusatzlich kann man noch ber speziellen BeanEditor Beans Eigenschaften anpassen Wobei NetBeans automatisch die getter setter Methoden Properties und Events erkennt Schritt 1 Quelldatei Praktisch reicht es schon eine Klasse mit einer Variable und get set Methoden um au
148. ile Edit View Navigate Source Refactor Run Debug Profile Team Tools window Help 0 ES config l d p ip r JEE Fabe derby localhost 1527 newDBapp test on TEST m E s L ay L create table auto NULLID oe ZS LE id int not null primary Key m m SQL is eis 3 marke warchar 50 iti Sg 4 ort varchar 50 Hm SYSCAT tee 5 preis varchar 20 ES SYSCS DIAG S 1 mE svscs LITIL a mE SYSFLUN I D create table haendler SYSIBM H e eeben a id int not null primary key Ei T amm 10 h name varchar 50 H ag SYSSTAT Fe dL PEST ll ort varchar 50 nii 19 email varchar 70 2 Tables a pep AUTO EI HAENDLER fe Views i Procedures E jdbe derby localhost 1527 sample app on APP H amp Web Services e E Servers ER 55 Hudson Builders E Team Servers Navigator 15 3 2 Datenbank mit Hilfe von Netbeans bearbeiten Rechtsklick auf Tables und Create Table w hlen Ri jdbc derby lacalhast 1527 car database nbuser on GSS APP Recreate Table E i Proc T3 NLILLID Execute Command ES SQL GES sys Refresh Im folgenden Fenster k nnen wir unsere Tabelle bearbeiten 118 168 Wintersemester 2010 2011 Create Table Table name Kunde Key Index Mul Unique 8 Column name EP Add columns ta the list Add Column Mame Type NUMERIC Size Default
149. ion 5 Driver 2c Web Servi Enable Debug Register MySQL Server E Hudson Bu E Team Servers E KS Issue Trackers E e Im folgenden Fenster die Server Eigenschaften eintragen ame MySQL Server Properties Admin Properties Server host name localhost Server port number 3306 Administrator user name TOOT Administrator password C Save password see Help for security risks e Zu Admin Properties wechseln und Dateipfade zu angegebenen Dateien angeben 113 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik eoe MySQL Server Properties Basic Properties Adm 1 Properties D O Se Path URL to admin tool Applications MySQL Tools MySQL Administrator app Browse Arguments Path to start command usr local mysql 5 0 51a 0sx10 4 1686 bin mysald Browse Arguments Path to stop command ocal mysql 5 0 la osx10 4 i686 bin mysqladmin Browse Arguments u root stop Help Cancel e Path URL to admin tool C Programme MySQL MySQL Server 5 5 bin mysqladmin exe e Path to start command C Programme MySQL MySQL Server 5 5 bin mysqld exe e Path to stop command C Programme MySQL MySQL Server 5 5 bin mysqladmin exe e Arguments u root stopp Der Server ist jetzt eingerichtet Falls er noch nicht verbunden ist disconnected gt Rechtsklick
150. ion RELEASE m The basic liftweb project RELEASE e A blank empty liftweb project RELEASE DS Hibernate Archive 0 9 M Description Maven Quickstart Archetype An archetype which contains a sample Maven project ls Groupld org apache maven archetypes Sc Artifactid maven archetype quickstart Dies ist lediglich eine graphische Darstellung des Dialoges wie er auch auf der Konsole zu sehen ist Wie man sieht kann man zwischen vielen verschiedenen Archtypes wahlen Maven Quickstart ware der dabei der einfachste Archtype Dieser generiert lediglich die Projekt Grundstruktur und eine Mainklasse 146 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik New Project Steps Name and Location 1 Choose Project 2 Maven Archetype 3 Name and Location Project Name Project Location fhome hoschy NetBeansProjects Project Folder ci Artifact Id ma Group Id de hsnr Version 1 0 SNAPSHOT Package de hsnr mavenproject1 Optional K ec uou ae ae S e za ae en canes mp AnschlieBend an diesen Dialog wird man nun wie gewohnt nach dem Projektnamen sowie einigen weiteren Maven spezifischen Parametern wie groupld oder der Version gefragt AnschlieBend generiert Maven das Projekt und Sie k nnen anfangen zu programmieren Weitere Informationen sowie die Archtypedokumentation finden Sie hier http maven apache org quides introductio
151. isch gestartet Wenn Sie direkt auf Ihrem Androidphone debuggen m ssen Sie auf Ihrem Ger t erst das USB Debugging aktivieren Diesen k nnen Sie auf Ihrem Androidphone unter Einstellung Anwendungen Entwicklung USB Debugging einschalten Wenn Sie nun Ihr Projekt debuggen und Ihr Smartphone ber USB angeschlossen ist wird Ihre Anwendung direkt auf Ihrem Ger t installiert und gestartet Nun k nnen Sie im laufe des Abends z hlen wie viel Bier Sie getrunken haben BE 6 00 ew BAS 5 59 pm AA G3 5 59 pm Alarm Clock Calculator 3 Car Home Contacts Messaging Spare Parts 19 4 Quellen http developer android com http www androidpit de http www androidbuch de http wiki netbeans org IntroAndroidDevNetBeans http de wikipedia org wiki Android_ 28Betriebssystem 29 158 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 19 5 Quellcode MainActivity java package org me androidapplicationl import d udrord app ACtIVILVYS import android os Bundle import android view View Import andrord wrdget Batton public class MainActivity extends Activity pDruxvsaue snb Count D pee Called when the activity is first created Override public void onCreate Bundle icicle super onCreate icicle setContentView R layout main final B bbon Count BULLOR IIDOVIOewBYIG Brd count Count setOnClickListener new View OnClickListener public void onClick View v
152. it e Dennoch dem Entwickler alle Freiheiten lassen das Projekt anders zu konfigurieren Mit dem Hauptziel der gt Kosteneinsparung In der Praxis resultiert daraus eine vorgegebene Paket Hierarchie Projektstruktur Wicket Spring JPA SS x Dies w re eine Beispielstruktur v main f r eine Webanwendung unter b gt g java Maven P resources gt Ed webapp v test gt 83 java P d target pom xml src Hier befinden sich allgemein erst mal alle Eingabedateien main Alle Projektspezifischen Dateien java Alle Javaquellcodes 142 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik resources Resourcen wie z B Properties webapp Alle Webapp resourcen wie html oder css Dateien test Hier wird die gleiche Struktur wie unter src aufgebaut Allerdings befinden sich dort die Unit tests zu den Klassen im src Verzeichnis target Hier befindet sich anschlieBend das fertig kompilierte Programm Dadurch kann ein Entwickler sich schneller in die Struktur eines Projektes einarbeiten da er auf Anhieb wei wo er welche Dateien finden kann 18 4 3 Dependency Management Dependencies bezeichnen Abh ngigkeiten Sprich Libraries Diese sind in gr eren Javaprojekten nicht weg zu denken Man braucht z B um eine Verbindung zu einer Datenbank aufzubauen einen jdbc driver oder um Logging mittels log4J zu nutzen eine Library Diese werden in einem Archiv im jar Format zur Verf gung gest
153. itsamt einem Checkout von einem Client mit seinem Repository auff hrt Die einzelnen Begrifflichkeiten werden im Anschluss n her erl utert Client Repository Import M e 4 Checkout Ver Bear gleich beitung f Update ME T7 C OK gt Commit n t Abb 32 Import und Checkout zwischen einem Client und dem Repository Das Beispiel f hrt das Importieren das Hochladen einer Datei in diesem Fall vom Client zum Repository und das anschliessende Checkout das Herunterladen einer Datei vom Repository zum Client aus Im Anschluss wird die Datei lokal vom Client bearbeitet und Anderungen unterzogen Zum Beispiel hat der Benutzer eine Funktion vergessen oder f hrt entsprechende Erg nzungen zu einer bereits bestehenden Funktion hinzu Wenn er dann die Datei wieder auf das Repository hochladt stellt selbiges mittels dem CVS fest dass es bei den Versionen sowie im Quellcode selbst Unterschiede gibt Wird die Ausgangsdatei als die selbe ausgemacht und gibt es bis auf die Anderungen des Benutzers keine anderen Erg nzungen L schungen oder sonstiges dann aktualisiert das Repository ihre vorhandene Version mit der des Clients und protokolliert die bestehende Version als Vorg ngerversion Gleichzeitig damit wird die Versionsnummer hochgesetzt Optional kann beim Commit des Clients eine Nachricht hinterlegt werden welche Anderungen vorgenommen worden sind Dieser Text wird mit der Datei auf dem CVS Server gespeichert und kann m
154. itsamt den vorherigen Versionen von anderen Benutzern angesehen werden Um jetzt nicht noch weiter Fachbegriffe zu verwenden die im CVS vermehrt auftauchen ohne eine komplette Erkl rung zu liefern werden diese in der Folge n her erl utert Hierzu 75 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik sei gesagt dass es nur eine Auswahl der gangigsten Befehle ist Das CVS umfasst annahernd 50 Befehle wovon die meisten noch auf die textuelle Verarbeitung des CVS Systems zur ckgehen Checkout Eine Arbeitskopie vom Repository holen Import Ein neues Projekt anlegen Verzeichnis in das Repository ubergeben Add Neue Dateien in das Projekt Verzeichnis einstellen Update Die eigene Arbeitskopie aktualisieren indem die Anderungen anderer Nutzer abgerufen werden Commit Eigene Anderungen zum Repository senden e Log Kommentare die beim Check In durch den Anwender verfasst werden und die vorgenommenen Anderungen beschreiben e Diff Anzeigen der Unterschiede zweier Dateiversionen Nachdem nun die Begrifflichkeiten geklart sind wollen wir einen Blick darauf werfen was passiert wenn zwei Clients ein und die selbe Datei vom Repository herunterladen und lokal bearbeiten Auf der folgenden Seite wird das obige Beispiel Abbildung 3 durch einen zweiten Client erg nzt der ebenfalls die Datei vom Repository herunterl dt Beide Clients bearbeiten ihre Datei lokal auf ihrem PC und soweit der erste Client seine
155. javax swing text GapContent MarkYector java awt Dimension Nm e em co e A GA ae CH java awt Point sun awt EventQueueItem OB sun awt EventListenerAggregate OB sun awt CausedFocusEvent OB javax swing text Segment OB javax swing text GapContent MarkData 0B i javax swing text GapContent InsertUndo OB i javax swing text Element OB javax swing text DefaultCaret 1 0B i javax swing text AbstractDocument ElementEdit 0B i javax swing text AbstractDocument DefaultDo 0B i av cuna lat Tncakcl ITD acerca B oO CH 2 00 OH Er oo oo ood e m b i KF ra P M NI T 200000000005 0 re me m rs F e ae a CH 9 4 Beispiel Anhand des Programmes SyncFiles Beschreibung In diesem Beispiel analysieren wir das Programm SyncFiles auf Threadtauglichkeit Danach sollten Sie in der Lage sein den Profiler zu Kalibrieren und eigenst ndig zu nutzen Grundlagen zu den in dem Beispiel nicht angesprochenen Punkten finden Sie in den Punkten 1 3 des Scriptes 1 Projekt SyncFiles hier runterladen htto home arcor de ka menzel software SyncFiles zip und in Netbeans ffnen 2 Als erstens m ssen wir den Profiler Kalibrieren Dazu gehen Sie bitte auf den Men punkt Profile Advanced Commands Run Profiler Calibration 3 Nun ist der Profiler einsatzbereit Wir werden unser Projekt auf Memory und Thread Leaks untersuchen Hierzu wahlen Sie in dem Men Profile den Unterpunkt Profile Main Projek
156. konvertieren Schritt 4 Testen des Programm Nach dem Starten erkennt man dass verschieben des Schiebers den Text andert oder auch Eingabe von Text den Schieber bewegt 13 2 2 Datentypen umwandeln 50 EZ JMEM 1 TextField Edit Text Change Variable Name TextField Bing E text Binding Advanced Bind property text java lang String Eo Binding Expression S value Binding Source value IGNORE ADJUSTING int alignmentX Float alignmentY Float gt background java awt Color gt border javax swing border Border Cancel Help ID Wie im Abschnitt davor beschrieben kann man auch eine String Variable und GUI Element mit Integer Eigenschaft verbinden Dazu h lt NetBeans einige Einstellungen parat Diese Einstellungen erreicht man unter Advanced Tab im Fenster f r Binding 99 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Um unterschiedlichen Datentypen zu 1m synchronisieren k nnen drei Funktionen s Convertor eingebunden werden o Convertor wandelt die Eingegebene Daten in einen anderen Datentyp um und Zur ck Validator pr ft eingegebenen Wert auf Konsistenz Mit dem Validator k nnen Eingabefehler erkannt und korrigiert werden Zwischen Source und Target wird kein Validator benutzt weil NetBeans davon ausgeht dass unsere Klasse schon richtigen Typ liefert Advanced Tab beim Binding Binding Adva
157. le scrollRectToVisible masterTable getlcellBect row 0 true setSaveNeeded true Gaction enabledProperty recordselected public void deleteRecord int selected masterTable getSelectedEowst List lt desktopapplicationl amp uto gt toRemove new ArrayList lt sdesktopapplicationl Autos selected length for int idx 0 idx lt selected length idx i desktopapplicationl Auto a list get masterTable conYyertBowIndeXToModeliselected idx toRemove addra entityManager removeira f list removedll toRemove SsetsaveNeeded true HAction enabledProperty saveNeeded public Task saveil Emm private class SaveTask extends Task SaveTask org jdesktop application pplication app save und refresh werden als cu cu Backgroundtask public Task refreshi IIe private class RefreshTask extends Task i erzeugt RefreshTask iorg jdesktop application Application app RSuppressWarnings unchecked Override protected Void doInBackground HC verride protected void Linishedi i E Hiction public void showAboutBor i MSuppressWarnings unchecked Generated Code variables declaration private final Timer messageTimer private final Timer busyIconTimer private final Icon idleIcon private final Icon busyIcons new Icon 15 private int busylconlndex 0 private Jbialog about Box private boolean saveNeeded 127 168 Wintersemester 2010
158. leIcon brauchen private final Icon busyIcons new Icon 15 private int busyIconIndex 0 private JDialog aboutBox 14 4 Der ExitListener In den oben genannten Links wird vorgestellt wie ein ExitListener zum SchlieBen des Programms erstellt werden kann Bei der Aufteilung zwischen GUI und Application wie es Netbeans f r uns erledigt sollte dieser dann wie folgt programmiert werden 27 28 29 30 31 50 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 private class MyExitListener implements ExitListener public boolean canExit EventObject e boolean bOkToExit false Component source Component e getSource bOKToExit JOptionPane showConfirmDialog source Do you really want to exit JOptionPane YES_OPTION return bOkToExit j public void willExit EventObject event j j public DesktopApplicationl View SingleFrameApplication app super app initComponents app addExitListener new MyExitListener Auf diese Weise wird erreicht dass auch weiterhin der GUI Code in der View Klasse bleibt 14 5 Arbeiten mit dem Action Dialog Das Arbeiten mit einer ActionMap liefert die JSR 296 automatisch mit erleichtert dem Entwickler die Arbeit mit Actions da f r Men s Toolbars Buttons und Tastaturbefehle nur eine Action definiert werden muss In Netbeans wird dies sehr einfach unterst tzt 106 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik
159. lementen wurden Beschreibungen hinzugef gt 29 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Kunden Fehlerbericht Programmierer i l 1 4 Abb 28 Verbindungen mit Labels Nun werden nur noch Start und Endpunkt hinzugef gt und unser Diagramm ist fertig Kunden Fehlerbericht z Kunda i Programmiarar i i i I i if i Abb 29 Fertiges Activity Diagramm 4 6 Quellen Netbeans IDE 6 5 30 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 5 Einf hrung in das Logging Gregor Piel 08 11 2010 5 1 Log Datei Eine Log Datei enth lt das automatisch gef hrte Protokoll aller oder bestimmter Aktionen von Prozessen auf einem Computersystem Die korrekte Bezeichnung daf r ist deshalb Protokoll Datei Wichtige Anwendungen finden sich vor allem bei der Prozess Kontrolle und Automatisierung Wahrend der Programm Erstellung sind Log Dateien hilfreich um schneller Fehler zu erkennen Auf einem PC k nnen Protokoll Dateien bestimmter Aktionen von einem oder mehreren Nutzern an einem Rechner geschrieben werden ohne dass diese es bemerken oder ihre Arbeit beeinflusst wird Das Betriebssystem hat ein eigenes System Logbuch Darin k nnen u a die Anmeldungen am System protokolliert werden aber auch andere wichtige Informationen AuBer dem Betriebssystem selbst schreiben meist Hintergrundprogramme z B ein E Mail Server ein Proxyserver und
160. lic void setStopEnabled boolean b 298 boolean old isStopEnabled 299 this stopEnabled b 300 firePropertyChange stopEnabled old isStopEnabled 301 Zus tzlich wird noch die Anotation f r die stopAction angepasst 284 Action enabledProperty stopEnabled 285 public void stopTask Jetzt brauchen wir nur noch beim Aufruf des Tasks und beim Stopp jeweils die Eigenschaft umschalten 236 public Task goTest 237 setStopEnabled true 238 myTask new GoTestTask getApplication 239 return myTask 240 Und 284 Action enabledProperty stopEnabled 285 public void stopTask 286 myTask cancel true 287 setStopEnabled false 288 112 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 15 Desktop Application Database Alexander Zitzer 20 12 2010 15 1 Datenbanken unter Netbeans Netbeans bietet uns viele Funktionen um mit Datenbanken zu arbeiten und nimm uns viel Arbeit ab So k nnen wir in kurzer Zeit Datenbanken erstellen bearbeiten und in unsere Projekte einbinden 15 2 MySQL Datenbank verbinden Um sich mit MySQL Datenbank zu verbinden gehe man wie folgt vor e Netbeans starten und links das Fenster Services aussuchen e Rechtsklick auf Databases und den Punkt Register MySQL Server w hlen NetBeans IDE 6 9 1 File Edit wiew Wavigate Source Refactor Run Debug Profi AGS S Guo m Projects Files g s Javap New Connect
161. lication i CH Jae KEE 5 Java Desktop Application CS Java Class Library ee Java Project with Existing Sources LS Java Free Form Project OD Maven e cre j ij NetBeans Modules E Samples Description Creates a new Java SE application in a standard IDE project You can also generate a main class in the project Standard projects use an IDE generated Ant build script to build run and debug y vour project Jetzt k nnen wir unserem Projekt einen Namen vergeben New Java Application Steps Mame and Location 1 Choose Project Project Mame Helloword 2 Name and Location Project Location C Dokumente und Einstellungen AlexiEigene Dateien NetBeansProjects Browse Project Folder inte und EinstellungenlAlextEigene DateienNetBeansProjectslHellaworld Use Dedicated Folder For Storing Libraries Different users and projects can share the same compilation libraries see Help For details Create Main Class helloworld Main Set as Main Project Netbeans erstellt uns einen Projekt HelloWorld und legt eine Datei Namens Main java an 11 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Proj ds Files Services Se HelloWorld Sar Source Packages G R helloworld ini ls Main java H Test Packages G G Libraries 3 8 Test Libraries In der Klasse Main java ist nun schon ein Coderumpf inclusive einer Methode Main angelegt wo wir unseren Code ein
162. lication View Action s Method action Task gaTest Jw Background Task Attributes Basic Advanced Enabled Property Selected Property OK Reset to default Cancel Help Im Code wird dann die Annotation wie folgt ge ndert Action block Task BlockingScope ACTION public Task goTest Im Ergebnis sieht dies dann wie folgt aus 110 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik FA Basic Application Example Bl x File Help working 5 TTT E Ein weiteres Feature ist dass der ActionDialog uns bei der Erstellung von gebundenen Eigenschaften Stop Button erst verf gbar wenn Task l uft hilft E Set Action i x Set jBukbon s action property using HS eee Action stoprask Action s Class desktopapplication Desktop pplication View Action s Method Action void stopTaski Background Task Attributes Basic Advanced Enabled Property stopEnabled Selected Property Blocking Type Blocking Dialog Title Blocking Dialog Message Ok Reset to default Cancel Help Wahlen wir unter Advanced eine Namen fur eine Property z B stopEnabled so erzeugt uns Netbeans folgenden Code 111 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 292 private boolean stopEnabled false 293 public boolean isStopEnabled 294 return stopEnabled 295 296 297 pub
163. lle steht zur Verf gung Drittanbieter stellen grafische Frontends oder Plugins f r Entwicklungsumgebungen zur Verf gung 10 6 3 Kenai Nutzt CVS Subversion amp Mercurial Repositories 10 6 4 CVSNT Ist eine Weiterentwicklung zu CVS Alle Anderungen werden in einem Set von Datei gesichert typischerweise in der Implementation eines Software Projekts Es ist kompatibel mit dem CVS 10 6 5 EVS EVS ist eine Client Server Anwendung die Anderungen in Dateien als Teil eines Konfigurations Management Prozesses speichert Der Server Teil kann auch in Standalone Manier auf dem Client betrieben werden EVS ist ein erweitertes Mulitplattform Versionskontroll System Es richtet sich an den bestehenden otandard des CVS Protokolls und hat neben der Robustheit viele zus tzliche Features f r moderne Betriebssyteme und Clients 10 6 6 OpenCVS Es kann als Client und als Server f r Repository eingesetzt werden und bietet detaillierte Zugriffskontrollen f r Daten die in dem Repository abgelegt worden sind Es versucht so kompatibel wie m glich zu anderen CVS Implementationen zu sein es sei denn bestimmte Funktionalit ten w rden die Gesamtsicherheit des Systems beeintr chtigen Das OpenCVS Projekt wurde nach den Diskussionen Uber die zuletzt bekannt gewordenen GNU CVS Sicherheitsl cken begonnen Obwohl CVS weitverbreitet ist stand die Entwicklung f r die letzten Jahre beinahe still und viele Sicherheitsprobleme traten auf sowo
164. local folder to checkout module into Local Folder homejtroy NetBeansCVS Browse local CvS working directory Cancel Help Back Finish Abb 34 Checkout Kommen wir im Anschluss an die sogenannte Farblehre bei Projekten Paketen Ordnern und Dateien Bei Projekten Paketen und Ordnern gibt es zwei Unterscheidungen 1 Blau Bei Anderungen 2 Hot Bei Konflikten Bei Dateien kann es zu mehr unterschiedlichen Farbwerten kommen 78 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Blau Anderung Gr n Lokal hinzugef gt Rot Konflikt Grau Ignoriert durch CVS z B bei L schung Durchgestrichen Ausgenommen von Commit Operationen Als n chster Schritt erfolgt das Importieren aufs Repository welche folgende Grafik am besten veranschaulicht Import Project Options Steps Folder to Import L CVS Root Specify the local folder ta import into CVS repository 2 Folder to Import Folder to Import home troy NetBeansProjectsjavaApplication Browse D Import Message new project al d L Specity the repository Folder ta import the local folder into Repository Folder jar ajavaApplication Browse Checkout After Import Back Cancel Help Abb 35 Import Als zusatzliche Hilfe dient beim CVS eine Auflistung der Dateien Diese wird unter dem Quellcode Editor angezeigt und sieht folgenderma en aus CWS
165. m Folder home amit dev tools android sdk linux x86 1 0 rl JDK 1 6 Default Add Platform Remove N E Ed Close Help Die Android Platformen befinden sich in Ihrem SDK Verzeichnis Unter New Project Android k nnen Sie nun eine neue Android Application auswahlen 19 3 HelloWorld Anwendung mit Android Beer Counter Im folgenden Abschnitt wird gezeigt wie man eine Android Anwendung entwickelt Hierzu wird die Anwendung Beer Counter programmiert dieses App soll beim Ber hren eines Buttons zahlen wie viel Bier man getrunken hat Erstellen Sie unter New Project Android gt Android Application ein neues Android Projekt 155 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 19 3 1 Android Projektstruktur T CL Be erlounter Le i Met Source Packager R Java Resourcen ID Definition diese Datei wird v amp org me beercounter automatisch erstellt und erweitert Sie darf nicht j MainActivity java editiert werden MainActivity java ist die Klasse der Haupt Activity ES R java 5 Test Packages Resources Ordner f r Resource Dateien wie z B BE aan Bilder Layouts Strings etc v a eyes Main xml Layout Definition f r View der Haupt 3 main xml Activity Y values EB strings xml otrings xml String Definition Ge Ga AndroidManifest xml definiert Infos wie Name gt Le Test Libraries Logo und Haupt Activity 2 And
166. m aktuellen Kontext verf gbar sind CS q 9 8 5 Evaluate Expressions 8 5 1 Allgemein Programmcode kann ausgef hrt werden wenn das Programm vom Debugger gestoppt wird Dieser Programmcode kann den Wert von Variablen die im aktuellen Kontext zu Verf gung stehen ver ndern 8 5 2 Evaluate Expressions in Netbeans Netbeans bietet uns eine einfache M glichkeit Evaluate Expressions auszuf hren Dazu klickt man im Netbeansmen auf Debug im dann erscheinenden Untermen klickt man auf Evaluate Expression Es erscheint nun ein Fenster in dem man seinen Code eingeben kann Beispiel 63 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Im folgenden Beispiel werden wir die Variable a Sum mit Hilfe einer Evaluate Expression andern Der Wert der Variable a lSum betr gt zum Zeitpunkt des Programmstops 1 wie man am unteren Screenshot sehen kann Cc allsum int l3 Nun f hren wir folgende Evaluate Expression aus um den Wert zu ver ndern Evaluate Code for int is0 is10 i4H allSum Am i 4 Fa Wenn wir unten rechts auf den gr nen Pfeil klicken wir die Expression ausgef hrt dass Watches Fenster sieht nach der Ausf hrung wie folgt aus gt for nti O c10 4 alum int 46 E allsum int W 1 IN Wie man im obigen Screenshot sieht wird das Ergebnis der Expression nach der Ausfuhrung im Watches Fenster angezeigt a Sum hat immer noch den Wert 7 Der Wert wi
167. male Klasse wandeln Convert Anonymous Class to Inner Eine anonyme Klasse in eine benannte innere Klasse wandeln Extract Interface Aus der Klassensignatur ein Schnittstellenger st erzeugen Extract Superclass Aus einer Klasse eine Superklasse extrahieren Use Supertype where Possible Casts auf Superklassen umstellen oafe Delete Testet vor dem L schen von Feldern Methoden und Klassen ob Verwendungen existieren 5 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 1 1 3 Fehlersuche Im nachsten Schritt der Softwareentwicklung und in dem Seminar geht es dann um die Fehlersuche 2 Vortrage beschaftigen sich mit dem sehr wichtigen Thema Logging Der Entwickler sollte das Logging zu einem festen Bestandteil der Entwicklung machen Neben dem Logging in Netbeans wird auch ein Blick auf Log4j geworfen Anschlie end werden Debugger und Profiler behandelt Der Profiler wird bei den Experten als ein wesentlicher Pluspunkt der IDE Netbeans angesehen Er liefert Informationen ber das Laufzeitverhalten der Anwendung mit wenig Aufwand wird Anwendung gemessen Folgende Funktionen beherrscht der Profiler berwachung der CPU Last CPU Geschwindigkeit und CPU Ausf hrung opeicherbenutzung Speicher berwachung mit Speicherlecktests berwachung von nebenl ufigen Prozessen Threads und deren Status Unterst tzung f r das JDK 1 4 2 JDK 5 0 und JDK 6 0 Profiling von laufenden Anwendungen opeichern von Pro
168. mentiert werden m ssen In diesem Fall die onClick View v Methode In dieser Methode wird nun die Integer Variable count inkrementiert und der Text vom Button Count wird neu gesetzt final Dutton Count button rrnddv 1iewByVTdiBimcccouHnt j Count setOnClickListener new View OnClickListener public void onClick View v Count COune lt Serrexe Bier counts 157 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 19 3 5 AndroidManifest xml In der AndroidManifest xml wird die Main Activity definiert also die Klasse die als erstes beim Starten der Anwendung aufgerufen wird Durch android labelz Beer Counter wird dem Label von der Activity ein anderer Name gegeben Dann wird durch android icon drawable icon der Anwendung im Menu ein neues Logo zugeteilt sonst w rde das Standard Android Logo gesetzt werden lt xml version 1 0 encoding UTF 8 gt manifest xmlns android http schemas android com apk res android package org me beercounter gt lt application gt activity android name MainActivity android label Beer Counter android icon Qdrawable icon gt lt intent filter gt lt action android name android intent action MAIN gt Category android name android intent category LAUNCHER gt intent filter lt activity gt lt application gt lt manifest gt 19 3 6 Debuggen Beim Debuggen der Anwendung wird nun das AVD Android Virtual Devices automat
169. mmenfassende G tze nenne nenne nnennenn 132 TOA QUEE ME 133 17 Web Application David Hamm 03071 2011 134 ole APET ee ae T 134 152 Java e 135 18 Projekt und dependency management mit Maven Holger Jansen 03 01 2011 140 18 1 E EE E 140 182 Warun Mavo WE 140 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 183 DIC OMX EE 140 18 4 Welche Vorteile bringt mir Mayen 141 18 5 SCIT UU tT 147 18 6 Installatl nsanieltilig cuoco iae eruca oou a eed a e 147 UOTE iai ue E ART ME 147 18 8 Dependency ET Le E 148 19 9 Andere NUZICNS TE 149 19 Mobile Application mit Android Dominic Scharmann 10 01 2010 150 19 12 WasiIsbAndold osos ecd enel era cial era eel Lu mt Leno Lacs bo Escocia 150 19 2 Android in Netbeans einrichten ccccceecceeccceeeceececeeceeeeceuseseueessueeseeessueeseeess 153 19 3 HelloWorld Anwendung mit Android Beer Counter esses 155 DOT NEEGTU LN 158 19 5 Quellcode eee PEEL Duo RO occi a be var EL putet 159 20 davarX mobile Tobias Schulz EAR WE RRE 160 20 1 WYasIgSbJaVal X Ferse oed E EE a EEE R 160 20 29 NV ARUN SAV alb X ed 160 20 9 VVabarminichibdaVal EE 160 ZU ECCL m ne 161 20 5 BOISDIOIO Ense 161 20 6 SeOhlusSWOFLE z B 164 20 7 Tutorials die auf dieses Thema aufbauen 164 20 8 e E KEE 164 21 Ver nderungen am Programm Fotosorter Paul B
170. n 140 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 18 4 Welche Vorteile bringt mir Maven 18 4 1 Automatisierte Builds Wie unter Punkt 2 bereits angesprochen ware es in der Praxis zu unhandlich alle zu kompilierenden Dateien von Hand anzugeben Deshalb unterstutzt Maven das automatisierte bauen von Projekten Um diesen Prozess auszul sen muss grundsatzlich erst einmal das Maven Kommando mvn aufgerufen werden An dieses werden dann entsprechende goals angehangen Die g ngigsten Goals sind z B clean test package install Es k nnen beliebig viele Goals hintereinander ausgef hrt werden So macht es h ufig Sinn vorher das Projekt zu cleanen um alle alten Klassen etc zu l schen Um also eine Anwendung zu l schen anschlie end neu zu bauen und in ein Archiv wie in der pom konfiguriert zu packen ware das Kommando mvn clean package Eine Liste aller verf gbaren Goals und Infos zum Lifecycle Management finden Sie hier http maven apache org guides Introduction introduction to the lifecycle html Der gleiche Effekt kann in Netbeans durch einen Rechtsklick auf den Projektnamen erreicht werden Projects x Fil v test Java EE 6 b Web Pages gt i Source Packag P 5 Test Packages P Other Sources b Ce Libraries gt Ce Test Libraries P amp Project Files b BB WebPages gt i Source Packag P 5 Test Packages P B Other Sources gt Ot
171. n Logging e Wiederherstellung lterer Dateistande e Open Source Freeware Nachteile e Umbenennen Verschieben wird nicht ber cksichtigt e Keine Versionierung von symbolischen Links e extuelle Abspeicherung der Dateien damit treten bei Binardateien beim Abspeichern Probleme auf 10 6 Alternativen zu CVS ber Vor und Nachteile wurde im vorangegangenen Abschnitt gesprochen Nun kommen wir zu den Alternativen in den Versionierungs Tools die es gibt Dabei haben die beiden Erstgenannten Subversion und Mercurial das CVS als Standard zum gr ten Teil abgel st Nun werden die einzelnen Alternativen kurz vorgestellt und erlautert 81 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 10 6 1 Apache Subversion Die Versionierung erfolgt in einem zentralen Projektarchiv engl repository in Form einer einfachen Revisionszahlung Wenn Anderungen an Inhalten verteilt auf den Computern der Bearbeiter ausgefuhrt werden werden zwischen dem Projektarchiv und einem Arbeitsplatz jeweils nur die Unterschiede zu bereits vorhandenen Standen Ubertragen Subversion wird als Freie Software unter einer Lizenz im Stil der Apache Lizenz ver ffentlicht Die Benennung Subversion setzt sich aus den Worten Sub und Version zusammen und kann so als Unterversion fr here Version verstanden werden Eine andere Interpretation f hrt den Namen auf den politisch soziologischen Begriff Subversion etwa Umsturz zur
172. n der FH Niederrhein FB Informatik 16 4 Quellen http www youtube com watch v JaftmZ6J7AE http www youtube com watch v PSIR7ssjx0A amp feature related http netbeans org kb docs java qui automatic i18n html newlocale http www iks hs merseburg de uschroet Literatur Java Lit JAVA Insel javainsel 13 004 htm 133 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 17 Web Application David Hamm 03 01 2011 17 1 Applets 17 1 1 Grundlagen Ein Java Applet ist ein Computerprogramm das in der Programmiersprache Java verfasst wurde und normalerweise in einem Webbrowser Abbildung 1 aber auch im Applet Viewer Abbildung 2 ausgef hrt werden ul zeng geste Ansicht Chronik RER Extras Hifl C X A O Meistbesuchte Seiten 77 Hosenjunge youtube K43 ll E wem E Dai Fr Abbildung 1 Abbildung 2 Sie wurden eingef hrt um Programme in Webseiten ablaufen lassen zu k nnen die im Webbrowser auf der Client Seite arbeiten und direkt mit dem Benutzer interagieren k nnen ohne Daten ber die Leitung zum Server versenden zu m ssen Abbildung 3 Java kompatibler Http Reauest HTML Seite Browser lt html gt g o Http Response lt applet code App class gt lt html gt Virtuelle Maschine Http Reauest i Http Response public class MyApplet extends Betriebssvstem JApplet a Abbildung 3 Java Applets waren Ende de
173. n introduction to archetypes html 18 5 Res mee Abschlie end kann man sagen das die Einarbeitung in Maven durchaus Sinn macht da es einem den Programmieralltag erheblich erleichtert Es erm glicht einem einfache Einarbeitung in Projekte sowie gute Mechanismen zur Qualit tssicherung Der Konfigurationsaufwand wird minimiert und das Dependency Management nimmt einem eine Menge an Arbeit ab Ebenso k nnen in der Wirtschaft durch die obigen Vorteile erhebliche Kosten eingespart werden Maven ist also momentan der modernste und komfortabelste Weg Javaprojekte zu bauen und zu verwalten Nicht Teil des Vortrags aber dennoch interessant amp hilfreich 18 6 Installationsanleitung http maven apache org download html Am Ende der Seite 18 7 Filtereinstellungen Sehr nutzlich wenn Anwendungen auf unterschiedlichen Systemen deployed werden sollen Durch Filtereinstellungen k nnen verschiedene Properties f r Systeme hinterlegt werden Durch Angabe des entsprechenden Profils setzt Maven in alle Konfigurationsdateien die Werte aus den Properties des entsprechenden Systems ein Somit k nnen Anwendungen auf einfachen Weg f r mehrere Syteme konfiguriert werden ohne dass alle Konfigurationsdateien eines Projektes geandert werden m ssen sondern nur eine zentrale Datei pro System Wie dies im Detail funktioniert entnehmen Sie bitte der Maven Doku http maven apache org quides mini quide building for different environments html http maven ap
174. nar an der FH Niederrhein FB Informatik 9 3 2 Attach Profiler Es ist m glich eine Anwendung zu pr fen die nicht aus der IDE gestartet wurde Beide Anwendungen m ssen mit der JDK6 gestartet sein dann ist es m glich den Profiler dazuzuschalten auch wenn das Programm bereits l uft 9 3 3 Profiling Points Profiling Points sind ahnlich wie Debugger Breakpoints sie werden ebenso im Sourcecode gesetzt Es gibt drei verschiedene Arten Reset profiling results Alle bisher angesammelten Informationen des Profilers werden gel scht Dies wird haupts chlich genutzt um an sp terer Stelle ein Snapshot zu machen um diese Sequenz genauer zu analysieren Take a snapshot Es wird eine detaillierte Ubersicht abgespeichert die mehr Informationen als die Live Results liefert Diese Snapshots kann man spater auch untereinander Vergleichen Record the timestamp Wie der Name schon acherech O rev Pronina roine inci xt x sagt wird hier ein Steps Customize Properties inl x f f Team Too Timestamp gespeichert ES P nud stopwatch Zudem ist es m glich _ uC oo aaa amp j DirectoryS Mame Stopwatch at DirectorySyncVisitor 48 gt gt of eine Dauer Zu Te a E speichern Wir k nnen d Measure Timestamp Timestamp and duration p also einen Profiling m Location begin E r i i gt ile nsProjects SyncFiles srcisyncfiles DirectorySyncvisitor java Browse see Point mit Timestamp vor Ens EX E
175. nced Identification Converter Validator Update Mode konfiguriert wann a 7 synchronisiert wird Dazu m ssen auch Be SEL UJ geeignete Methoden vorhanden sein sae E a SCH Set Get Methoden pecify how the target and source are update Update Mode Always sync read write M Update Source When wann soll Update Source When While typing E synchronisiert werden Type Conversion Convert From the source to target using Converter hier wird unsere Converter none v JU Konvertierungsfunktion eingetragen Validation Validate changes using Validator Funktion zum Pr fen von Validator none Ea Eingaben Alternate Values Use these values iF the binding source value is null or incomplete Source Value kann man naturlich Defaultwert eingeben falls Eingaben nicht korrekt waren Cancel Help Beim Null Source Value und Unreadable 3 Null Source Value null ID O Unreadable Source Value mull IR 13 2 3 Variable mit GUI Element verbinden Beim Verbinden einer Variable mit einem GUI Element ist mehr Aufwand erforderlich Dazu muss man ein Bean aus dem Quelldatei erstellen 100 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 1 Klassen Datei muss kompiliert sein erst dann kann man diese Klasse zur Palette hinzuf gen 2 Klasse wird zur Palette hin gef gt peutzedetnertes poem benutzerdefiniertes GUI Element 3 Jetzt kann dieser GUI Element
176. ndy Man hatte sich besonders viel von Handy Apps versprochen wo JavaFX aber dran vorbei geschossen ist LG Sony und ein paar andere Firmen wollten mit Sun zusammen JavaFX auf Android bringen Dieser Plan schlug fehl In der Praxis sind JavaFX mobile Anwendungen viel zu langsam auf diesen Endger ten und nicht Praxisgerecht Dort wurde Java FX zum Opfer seiner eigenen Vielfaltigkeit Google Android und Apple IPhone haben beide einen anderen Weg verfolgt der sich aktuell als der bessere herausgestellt hat Google und Apple haben f r ihre Mobile Devices Programmier sprachen angepasst Bei dieser Anpassung wurde sehr viel wert auf das eigentliche Ger t selbst gelegt und nicht auf eine m glichst gro e Kompatibilit t Das 160 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Ergebnis ist dass Apps auf dem IPhone und Android so schnell laufen wie auf keinem omartphone davor Programme haben fast keine Ladezeiten man klickt in einer WebApp und es kommt sofort eine Reaktion usw Dieses Ergebnis lasst sich mit JavaFX nicht erzielen Es l uft im Gegensatz dazu eher sehr langsam und Aktionen werden meist versp tet verarbeitet Dazu kommt auch noch dass Sun von Oracle aufgekauft wurde und dadurch sich der Entwicklungsschwerpunkt sich deutlich verschoben hat in Richtung Desktop Anwendungen und Web Apps Oracle steht mit Google ausserdem in einem Patentstreit wegen der Sandbox in Android Dieses ist sicherl
177. ne umfangreichere Konfiguration der Objekte zur Auswahl 12 2 Erstellung einer graphischen Benutzeroberflache Erstellen Sie einen JFrame in Ihrem Projekt in dem Sie im Projektfenster auf Projekt dann Rechtsklick gt New gt JFrame form eine neue Klasse hinzuf gen Nach der Benennung der Klasse und der Zuweisung einem Package k nnen Sie mit der Gestaltung Ihrer Oberflache sofort beginnen 90 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik fi quibeispiel NetBeans IDE 6 9 Fie Edit View Navigate Source Refactor Run Debug Profile Team Tools Window Help Ree 3 EFC source beso D S RAEE Q The Properties vindow displays editable settings for the selected components Een va 1774 Comente uns Ei bs 05 01 2011 1 amp S255 D CWokumerte und Ei 5 C Vroorammelaval 22 Properties und Palette Inspector Fenster Us Usages deps cl een p Crested dir C Dokumente und Einstellungen Artur Eigene Dateien NetBeansProjects Addierer build o Updating property file C Dokumente und Einstellungen Artur Eigene Dateien NetBeansProjects Addierer build built cl Deleting directory C Dekumente und Einstellungen Artur Eigene Dateien NetBeansProjects Addierer build D clean BUILD SUCCESSFUL toral time 0 seconds 1A public class addlerar extends Jayas F4ing avEf amp ame i 20 ee rentem new form endimrer j 211 pubis amddlerer i Abgeleitet von ei E
178. ner angegebenen Zeit abgebrochen Einsatzbereich ware hier z B ein Datenbankzugriff ist ein Verbindungsaufbau nicht m glich ist der Test nach dem Timeout Fehlgeschlagen 7 5 Testen mit Parameterlisten Wenn man ein gr Beres Programm hat welches verschiedene bergabeparameter akzeptiert und gesondert abhandelt sollte man die Methode mit mehreren und 03 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik verschiedenen Werten testen Damit wir nicht fur jeden Test Wert eine Methode schreiben mussen kann man hier eine Parameterliste zur Hilfe nehmen Wir haben bei unserem Beispiel leider keine groBe Auswahl an Test Werten dennoch schauen wir uns das am Beispiel der Methode abbuchen an Zuerst Was andert sich an unseren Testmethoden 110 Test 111 public void testAbbuchen throws Exception E 112 System out printin abbuchen 113 int x 100 114 bankAccount instance new bankAccount 115 instance einzahlen x 116 instance abbuchen x 117 118 uzserLEgsauls Test abbuchen war erfolgreich 0 instance gertGeld 119 Ohne Parameterliste Mit Parameterliste 78 Test 19 public void testAbbuchenOhneException throws Exception E ag System ouct printin abbuchen von testzahl 81 SE bankAccount instance new bankAccount testzahl B3 instance abbuchen testzahl B4 B9 assertIrue 0 instance getGeld B6 Wie man sehen kann ndert sich nicht viel Die
179. nes Handbuches oder der Hilfe Funktion F1 vor Diese Art der Dokumentation richtet sich an den Anwender eines Programms Zum anderen gibt es die Beschreibung des Quellcodes eines Programms Diese Art der Dokumentation richtet sich an den Programmierer und soll von nun an von uns von Bedeutung sein 11 1 2 Dokumentation des Quellcodes Eine Dokumentation des Quellcodes beinhaltet die Beschreibung der verwendeten Variablen Methoden hier vor allem die Schnittstelle also die public Methoden da dies auf Quellcode Ebene die Funktionalit t ist die von au en zur Verf gung steht Klassen Exceptions usw Ferner kann diese Dokumentation weitere Informationen enthalten wie zum Beispiel Angaben ber den Autor eine kurze Beschreibung des Programms bzw der Programmteile und Abschatzungen ber das Laufzeitverhalten Welche Angaben eine Dokumentation enthalten sollte hangt davon ab was f r das gesamte Projekt sinnvoll erscheint hier gibt es keine festgelegte Norm Sie sollte allerdings so kurz wie m glich gehalten werden 11 1 3 Wozu dient eine Dokumentation Heutzutage sind meist mehrere Personen an einem Software Projekt beteiligt Dies erfordert dass Programmteile von anderen Programmierern verstanden werden m ssen Nun ist Quellcode vor allem der nicht von einem selbst geschrieben wurde sehr schwer zu verstehen Und da die beteiligten Programmierer jedoch raumlich und zeitlich stark von einander getrennt sein k nnen dh
180. ngen aber c auch pr fen ob das EY pen S n inus Services abzubuchenden Betrag be verf gt x pont aia Test entwerfen HB edefsuit packag CG L Libraries Cut Sirge X D jy Test Libraries Copy Strg c Dazu dr cken wir Ce Strg Umschalt U oder pinch mit ui 1 See PE austaste auf die Java Debug File birge mschait FS Datei in der sich unsere Pools Fila Klasse befindet und TT klicken unter Tools auf Create JUnit Tests sud Delete Enti Save As Template Find Usages AH F7 Refactor Beaninfo Editor File Members Strg F12 File Hierarchy Ane HA Local Histor Tock L Apply Defi Patch Properties D I To Add to Favontes Add to Palette Analyze lavador Create leg Tests Sti Umaschalt U 48 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Im folgenden erscheint ein Fenster indem wir JUnit 4 X auswahlen und klicken dann auf Select Das n chste Fenster best tigen tlass ta Test bank bankAccount wir mit OK Class Name bank bankAccountTest Location Test Packages Select JUnit version for which the created test skeletons should be created r Code Generation Method Access Levels Generated Code Public V Test Initializer Writ 3 x Protected di Test Finakzer Y Default Method Bodies Generated Comments Javadoc Comments 7 Source Code Hints Nun sollte unser Projekt so aussehen s Bank EF ua Source
181. nimmt einem Maven ab und macht es m glich komplette Projekte automatisiert zu kompilieren zu testen und anschlieBend in z B ein jar oder war Archiv zu packen und zu deployen Au erdem ist es komplett von der Konsole aus bedienbar und somit f r das bauen von Anwendungen auf Servern ohne grafischer Oberfl che bestens geeignet Dies ist zwar auch schon mittels make oder ANT m glich allerdings ist Maven wesentlich komfortabler in der Bedienung AuBerdem ist Maven auch sehr gut in den gangigen IDEs wie Netbeans und eclipse integriert Weitere Features die f r Maven sprechen k nnen hier nachgelesen werden http maven apache org what is maven html http maven apache org maven features html 18 3 Die pom xml Pom steht fur Project Object Model Die pom xml ist die zentrale Konfigurationsdatei in Maven Genau genommen ist die pom xml die xml Reprasentation des Projektes und dessen Einstellungen Maven nutzt diese um den kompletten Buildprozess zu steuern und alle n tigen Informationen abzulegen In ihr finden sich z B Dependencies Repositories build Parameter Plugins Filtereinstellungen etc Alles was zur Beschreibung des Projektes aus Sicht von Maven n tig ist findet sich also dort Aus Sicht von Maven muss allerdings ein Projekt keine Javaklassen oder ahnliches enthalten sondern lediglich eine valide pom xml Die komplette pom xml Doku ist auf der Maven Projektseite unter http maven apache org pom html zu finde
182. nitialisierung Die grafische Au a ee Oberflache wird in DesktopApplication1 View java und der ber Dialog in DektopApplication 1 AboutBox java erzeugt Desktop pplication1AboutBox java Ss Ei Desktop pplication view java E BH desktapapplicatian1 resources Ge Desktop pplication i properties Ge Desktop pplication 1AboutBox properties Im Editor ffnet sich der GUI View und pk Desktop Application 1 view properties zeigt dass bereits wesentliche Elemente oe B about png einer Anwendung zur Verf gung stehen 0 lE splash png GL desktopappicationl resources busyicons 103 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik File Help About Dialog Statusbar Progressbar Navigator Inspector B Form DesktopApplication 1 view ven FrameView ven am mainPanel JPanel B File menubar JMenuBar m EJ FileMenu JMenu A exitMenulkem IMenultern Es helpMenu Menu uis m aboutMenultem JMenultem B i statusPanel JPanel P statusPanelseparator 75eparator 3 eM lel statusMessageLabel JLabel label status nimationLabel JLabel i HE progressBar JPragressBar GUI View mit zugeh rigem Inspector wie es der Wizard komplett erzeugt Folgende beiden Links geben einen sehr guten Einblick in die JSR 296 https appframework dev java net intro index html http java sun com developer technicalArticles javase swingappfr Hier sollen nur
183. ommentar innerhalb einer JSP gt 138 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 17 2 3 Beispiel lt SEpage contentType text html pageEncoding UTE E 3 gt I LFH 1 H ee e el ee e ll LS LL eo ed LII sm wm i z TT E atat i at string antwort String antwort err m Double celsius 0 0 Double kelvin 0 0 if request getParameter submit null i tryt celsius Double valseOf request getParameter tceisius if celsius 73 1233 antwort err Bei 773 15 ist schluss nK lter gehts wirklich nichr elsei kelvin celsius 273 15 antwort String valuveor kelvin catch NumberFormatException elt if request getParameter tceisius equals antwort err Ohne Eingebe gehts leider nichti else antwort err Na Na Nat rlich funktionieren hier nur Zahlen als Eingabe f gt lt head gt meta http equiv Content Type content text html charset UTF 8 lt title gt Der Umrechner lt title gt lt head gt body bocolor F7scccco gt lt center gt lt hi gt Der Umrechner lt hi gt lt p gt Hier haben Sie die M glichkeit Temperaturen von Celsius in Kelvin umzurechenen lt p gt lt form action name umrechner method GET gt Celsius lt input type text name tcelsius value lt t ceteitnss gt lt br gt lt br gt lt input type submit name submir value Berechnen gt lt
184. ord Mitteln Beim Remote Debbuging lauft der Debugger auf einer anderen Maschine als das ausf hrende Programm Eine andere Maschine k nnte z B ein Server oder ein Handy sein 57 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Als Remote Debugging wird ebenfalls das Debuggen von Programmen bezeichnet die in einer Simulation laufen 8 2 Netbeans Debugger Die Netbeans IDE enthalt einen modernen Debugger der einem alles zu Verfugung stellt was man benotigt um Fehler zu finden und zu analysieren In Verbindung mit dem Profiler Referat von Sascha Oedekoven von Netbeans ist es also sehr komfortabel sein Programm von Fehlern zu befreien und zu optimieren Netbeans bietet die M glichkeit sowohl lokales als auch Remote Debugging zu betreiben Ebenso besteht die M glichkeit andere Debugger f r andere Programmiersprachen in die Netbeans IDE einzubinden Es ist m glich das Debug Verhalten sowie die Aktion der im nachsten Abschnitt beschriebenen Debug Kn pfe zu verandern In diesem Skript geht es um den Java Debugger mit standardmaBigem Verhalten 8 2 1 Bedienung Startet man ein Programm im Debug Modus Strg F5 stellt einem Netbeans folgende Leiste zu Verf gung um den Debugger zu steuern E Bel pep mr Hier eine genauere Erklarung der Buttons Le Step Over Falls es sich bei der aktuellen Zeile um eine Methode handelt wird diese erst komplett durchlaufen und anschlieBend zur n chsten Zeile der aufr
185. prache zugewiesen welche in unserem Deutsch ist Als n chster Schritt wurde die Bundle en En properties Datei erstellt und bearbeitet hier wurde den Keys die Values der englischen Sprache hinzugef gt 167 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Das Fenster fur das zuweisen der key value paare sieht wie folgt aus default language EN Englisch er jLabel2 New Name FotoSorter jLabel4 text Monate FotoSorter title FotoSorter FotoSorter jLabel5 text Jahre FotoSorter jLabel6 text g FotoSorter jLabel7 text Startindex Startindex Neuer Ordner ew Directory Beenden Quit i Minutes File Info Clear m m m H jMenultemQuit text jLabel3 text n einige ilfe eichern ButtonBreak text jMenuItemHelp text Save About jLabeli text jTextFieldStartInd text jTextFieldHours text jTextFieldDays text iTextFieldName text jTextFieldMins text jTextFieldMonths text jTextFieldYears text i gt E eo e A g tn zu 99 ie 1 H rd f Fh ct Kal H o Im IE a PROBLEM TO LOAD LOGGING PROPERTIES About No directory choosed Problem mit der Loa Property Datei KEIN VERZEICHNIS GEWAHLT B Ss roi rat 6 6 2 10 03 9 n n 6 6 03 103 03 93 n8 r1 o o o o jo jo jo jo o o o o jo o O lo lo jo H E31 O ct et et fet jet fet dct ict et ie Iw o o o o O O O io O o O o lo O jo O jo jo E je tn eo t to t t
186. punkt Profiler auf Stop Profiling Session klicken 72 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 8 Wahlen Sie die Datei SyncFiles View im Design Modus auf Nun w hlen Sie den Button Analyse aus Den Eigenschaften k nnen wir entnehmen dass der Button jButtonAnalyse hei t Durch einen Doppelklick auf den Button gelangen wir zu dem Quellcode welcher ausgef hrt wird wenn der Button gedr ckt wird 9 Durch deaktivieren des Buttons ist es dem User nicht m glich einen weiteren Thread zu starten Daher f gen wir nun ButtonAnalyse setEnabled false beim starten der Analyse ein 10 Da der Button auch wieder aktiviert werden muss f hren Sie bitte den Punkt 8 und Punkt 9 analog mit dem Abbruch Button durch Nun wird bei der Funktion setEnable ein true gesetzt 9 5 Quellen Informationen http profiler netbeans org http netbeans org download flash netbeans_60 profiler profiler html http netbeans org kb docs java profiler profilingpoints html http netbeans org kb docs java profiler intro html http www drdobbs com java 184406433 http netbeans org download flash netbeans 60 profiler profiler html http wiki netbeans org NetBeansUserFAQ section NetBeansUserFAQ Profiler Bilder In Netbeans erstellt Teilweise aus dem Programm SyncFiles von http home arcor de ka menzel 73 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 10 CVS Local History Christian
187. r Framework OpenGL ES FreeType Sl Sal LINUX KERNEL Display Camera Drier Flash Memory Binder IPC rmer Driver Driver Audio Power Drivers Management Keypad Driver WiFi Driver Linux Kernel Der aktuelle Linux Kernel ist die Version 2 6 Dieser bildet eine gute Betriebssystemgrundlage indem er die erforderlichen Hardwaretreiber zur Verf gung stellt wie zum Beispiel verschiedene Ger tetreiber Bildschirm Kamera WiFi etc Zudem bernimmt der Kernel die Energieverwaltung Prozessverwaltung usw Android Runtime Laufzeitumgebung Wird eine Anwendung gestartet lauft diese in ihrer eigenen virtuellen Maschine In Android wird die Dalvik Virtual Machine DVM genutzt Diese DVM ist so klein und performant dass Android f r jede weitere gestartete Anwendung eine neue DVM spendiert Dies kann unter Umst nden zwar extra Ressourcen verbrauchen dennoch bringt es einen gro en Vorteil in punkto Sicherheit und Verf gbarkeit da sich die Anwendungen keinen gemeinsamen opeicher teilen kann ein sterbender Prozess keine weiteren Anwendungen zum Absturz bringen Libraries Standarabibliotheken Diese C C Bibliotheken stellen alle erforderlichen Funktionalitaten bereit die eine Android Anwendung erfordert Application Framework Programmierschnittstelle Anwendungsrahmen Diese Schicht in der Android Architektur ist f r den Entwickler die interessanteste Sie stellt verschiedene Programmierschnittstellen bereit die zur
188. r auch wieder m glich 61 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Break point Type Method mL Settings Class Name forosort Fotosorter WA All Methods for Civen Class Method Name all methods Stop On Method Entry ES Conditions Condition r Break when hit count equals tc Actions Sus pend Break point thread Print Text Method breakpoint hit in fclassNamel methodNan e Thread a Breakpoint Type Thread Settings Stop On Thread Start ES Conditions Break when hit count quals to a Actions Suspend Breakpoint thread I Print Text threadStarted Thread breakpoint hit by thread OED Cancel 8 3 6 Breakpoint setzen Netbeans bietet einem verschiedenste Wege Breakpoints zusetzen Man kann dies tun indem man links auf die Zeilennummer klickt Oder man kann ein St ckcode markieren und es in das Breakpoint Fenster ziehen In beiden F llen ist Netbeans meistens so intelligent den passenden Breakpoint Typ selbst zu wahlen 8 4 Watches 8 4 1 Allgemein Mit Hilfe von Watches lassen sich der Typ und der Wert einer Variable beobachten 62 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 8 4 2 Watches in Netbeans Netbeans bietet uns ber Watches eine einfach M glichkeit den aktuellen Wert einer Variable zu erfassen Damit der aktuelle Wert einer Variable angezeigt werden kann m
189. r 1990er Jahre mit ein Grund f r den Erfolg und die schnelle Verbreitung von Java Java Applet 17 1 2 Programmierung Die Einbindung des Applets in den HTML Code von Webseiten erfolgt mit dem OBJECT Tag dem APPLET Tag oder dem EMBED Tag Alle Java Applets werden von der Java Klasse java applet Applet abgeleitet Sie verf gen unter anderen ber die folgenden Methoden jedoch nicht ber eine Methode main wie sie f r Java Anwendungen ben tigt wird e init wird genau einmal aufgerufen wenn das Applet erstmals geladen wird e start wird jedes Mal aufgerufen wenn das Applet sichtbar wird 134 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik e paint Zeichenmethode f r die Anzeigefunktionen des Applet e stop wird jedes Mal aufgerufen wenn das Applet verdeckt wird z B weil das Browser Fenster von einem anderen Fenster berdeckt wird e destroy wird aufgerufen wenn das Applet aus dem Hauptspeicher entladen wird F r die Programmierung der Benutzeroberfl che k nnen die beiden Techniken Swing oder AWT verwendet werden Jedoch ergibt sich die Einschrankung dass das in die HTML Oberfl che eingebettete Fenster nicht programmgesteuert geschlossen werden kann man kann aber zus tzliche Fenster ffnen 17 1 3 Sicherheit Applets werden auf dem Rechner des Anwenders ausgef hrt und stellen daher wie jedes lokal ausf hrbare Programm ein Sicherheitsrisiko dar Java
190. r setVisible true progressBar setIndeterminate false progressBar setV alue value j j 3 j About Box aufrufen Action public void showAboutBox if aboutBox null JFrame mainFrame DesktopApplicationl getApplication getMainFrame aboutBox new DesktopApplication 1 AboutBox mainFrame aboutBox setLocationRelativeTo mainFrame DesktopApplicationl getApplication show aboutBox j Rest SuppressWarnings unchecked private void initComponents Seminar an der FH Niederrhein FB Informatik Timer setzen der MessageLable nach message TimeOut l scht Busylcons holen Im Takt busyAnimationRate das nachste Icon setzen F r Background Tasks An den Taskmonitor ist Teil des FrameView neuen Figenschaftslistener hangen der Busylcon und Progress in Abhangigkeit des Status setzt Application besorgen AboutDialog instanzieren Dialog anzeigen Init der Komponenten wie wir es vom GUI Editor kennen 105 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik private javax swing JPanel mainPanel private javax swing J MenuBar menuBar private javax swing JProgressBar progressBar private javax swing JLabel statusAnimationLabel private javax swing JLabel statusMessageLabel private javax swing JPanel statusPanel private final Timer messageTimer Variablen die wir f r einen private final Timer busyIconTimer Background Tasks private final Icon id
191. rd erst verandert wenn man mit dem Debugger weiter geht Nach dem man einen Schritt weiter gegangen ist sieht das Watches Fenster so aus lt gt alisum int Ap F 8 6 Multi Session Debugging 8 6 1 Multi Session Debugging in Netbeans Mit Netbeans haben wir die M glichkeit mehrere Anwendungen gleichzeitig zu debuggen Die Ausgaben und Einstellungen des Debuggers beziehen sich immer auf die derzeitige Session Die laufenden Sessions stellt Netbeans im Session Fenster dar Man kann die derzeitige Session w hlen indem man im Session Fenster rechts auf einen Eintrag klickt und im erscheinenden Kontextmenu Set Current Session ausw hlt Der untere Screenshot zeigt das Session Fenster mit zwei laufenden Sessions m fotosort FotoSorter Running l BS projekt1 Main Java 8 6 2 Session Fenster Die erste Spalte der Tabelle zeigt den Namen des laufenden Projektes an durch die Icons vor den Projektnamen l sst sich erkennen welche die derzeitige Session ist D Dieses Symbol kennzeichnet die aktuelle Session LI Durch dieses Symbol werden andere aktive Session gekennzeichnet die aber nicht als aktuelleSession ausgew hlt sind Die zweite Spalte stellt den Status dar Es gibt die Stadien Running und Stopped In der dritten Spalte wird die in dieser Session verwendete Programmiersprache dargestellt Es ist mit Netbeans m glich z B eine Session mit einem Java Programm und eine andere Session mit einem PH
192. roidManifest xml 19 3 2 Layout festlegen In der Resources layout main xml wird das Layout der Haupt Activity definiert In AbsoulteLayout gt wird mit android background drawable bier der Hintergrund festgelegt dazu wurde vorher im Ordner Resources ein neuer Ordner namens drawable angelegt und das Bild bier jpg dort gespeichert Mit Button gt lt Button gt definieren wir einen Button Damit wir sp ter auf dem Button zu greifen k nnen wird mit id count eine ID in der A java hinterlegt ame 5 08 eu A wm LOD d a LO lt AbsoluteLayout android ide u id widget android layout widthm fill parent android layout height fill parent android Bbackground Yorawable bier e i xminas androidme http schen Button android idme dS d caount droid layout width i lpx 3 i lavout height 15 mx id text Count layout x DpH android Layout ym iiBpx Button lt AbsoluteLayout gt In Netbeans 6 9 ist leider noch keine GUI zum Erstellen der Oberflache integriert Wenn Sie aber lieber Ihre Oberflachen mit einer GUI erstellen wollen bietet sich hierfur das Programm DroidDraw an unter www droiddraw org 19 3 3 R java Wird automatisch erstellt hier wird f r jede Resource ein Konstanter Integer Wert hinterlegt Diese Datei wird nie editiert man braucht sie eigentlich nicht mal einzusehen 156 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein
193. rsemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 3 3 UML Diagramme Von den 13 verschiedenen UML Diagrammen werde Ich nachfolgend das Klassendiagramm als ein Beispiel fur ein Strukturdiagramm und das Aktivitatsdiagramm sowie das Sequenzdiagramm als Beispiele fur Verhaltensdiagramme genauer vorstellen 3 3 1 Klassendiagramm Das Klassendiagramm hilft bei der Modellierung von Klassen Schnittstelle sowie deren Beziehungen Dabei ist die Bezeichnung Klasse ein abstrakter Oberbegriff f r die Struktur und das Verhalten eines Objekts Eine Klasse wird in einem Klassendiagramm durch ein Rechteck dargestellt welches mindestens den Klassennamen aber auch Namen und Typ bzw Parameter von Attributen und Methoden enth lt Die Attribute und Methoden einer Klasse k nnen dabei eine unterschiedliche Sichtbarkeit besitzen So bezeichnet das Schl sselwort public welches durch das Zeichen vor dem Attribut oder der Methode im Klassendiagramm dargestellt wird einen unbeschrankten Zugriff auch von auBerhalb der Klasse auf dieses Element Bei den Schl sselw rtern protected und private dargestellt durch ein bzw Zeichen kann der Zugriff nur aus der Klasse selbst bzw bei protected auch aus einer Unterklasse erfolgen Die Sichtbarkeit innerhalb eines Pakets ist durch das Schl sselwort package dargestellt durch ein Zeichen geregelt Beziehungen zwischen Klassen Vererbung Bei Klassen spricht man von einer V
194. rt wird der Debugger ausgel st wenn auf eine Variable zugegriffen wird und oder sie ver ndert wird Es l sst sich der Variablenname sowie die Klassen in der sich die Variable befindet definieren Das freie definieren einer 60 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Bedingung anhand von Variablenwerten ist hier genauso m glich bei dem Exception Breakpoint Settings Class Name fotosort FotoSorter Field Name Stop On Field Access or Modification r Conditions _ Condition Break when hit count 3 Actions Breakpoint thread Suspend Print Text Field breakpoint hit at line lineNumber in class c OP Cancel Line Bei dieser Art f hrt der Debugger die Aktion aus die in dem Breakpoint defniert ist wenn er auf die angegebene Zelle trifft Hier lasst sich ebenfalls wieder eine frei definierte Bedingung eintragen Breakpoint Type Line ES Settings Fila Users blacksheep 2011 Downloads FotoSorter Line number 27 Conditions Condition LJ Break when hit count 2uals t Actions Suspend Breakpoint thread D Print Text Breakpoint hit at line lineNumber in class classNan FR P Cancel Y Method Hier bezieht sich der Breakpoint auf die angegebene Methode bzw alle Methoden der angegebenen Klasse Der Breakpoint wird ausgel st in den F llen dass die Methode betreten wird und oder verlassen wird Eine frei definierte Bedingung ist hie
195. s diesem Quelldatei ein Bean zu erstellen Dieser Code kann man auch automatisch generieren lassen Dazu rechte Maustaste im Quelltext auf dem gew nschten Platz klicken Im ge ffneten PopUp Men klickt man auf Insert Code und im n chsten Men auf Add Property Unter Name wird Variablenname eingegeben die erstellt werden soll Im Eingabefeld nach dem Gleichheitszeichen k nnen Initialisierungswert andere Variable oder Funktionsname eingegeben werden Auch Variablentyp kann unter Type ausgew hlt werden Es k nnen Get Set oder beide Methoden generiert werden Eine wichtige Option ist Bound Wenn diese Option aktiviert ist werden alle GUI Komponente die mit dieser Variable ber Binding verbunden sind automatisch synchronisiert auch wenn man diese Get Set Methoden innerhalb seines Quelltext aufruft Dazu wird ein PropertyChangeListener definiert der alle Aufrufe berwacht und andere Komponente benachrichtigt Indexed erstellt ein Array Variable anstatt public class NewClass String beispiel2 b2 public String getBeispiel2 return beispiel public woid setBeispiel2 String beispiel this beispiel beispiel public Navigate b Show Javadoc ALt F 4 Find Usages Alt F5 Call Hierarchy Generate Constructor toString Override Method Call Web Service Operation Generate REST Client Name text IO Type String E
196. s nicht der aktuelle Thread a einen angehaltenen Thread der nicht der aktuelle Thread ist Die Rechte Spalte stellt den Status des Threads dar Folgende Stadien sind m glich Monitor Thread wartet auf einen Java Monitor Not Started Der Thread wurde bis jetzt noch nicht gestartet Running Thread l uft zur Zeit Sleeping Der Thread schl ft Thread sleep wurde aufgerufen Unknown Der aktuelle Status des Threads ist nicht bekannt Wait Der Thread wartet Object wait wurde aufgerufen e Zombie Der Thread hat seine Ausf hrung beendet weil er fertig war Durch einen Rechtsklick auf einen Threadnamen ffnet sich ein Kontextmenu in dem folgende Funktionen zu Verf gung stehen e Make Current Macht den ausgew hlten Thread zum aktuellen Thread e Suspend Halt den ausgew hlten Thread an e Interrupt Unterbricht den ausgew hlten Thread e Go To Source Geht zum Quellcode des ausgew hlten Threads 8 8 Deathlock Detection 8 8 1 Allgemeine Definition von Deathlock Ein System wird blockiert weil versucht wird auf eine Komponente zu zugreifen die exklusiven Zugriff voraussetzt und diese Komponente nicht wieder frei gegeben wird 8 8 2 Deathlock Detection in Netbeans Netbeans bietet eine Option die automatisch Deathlocks erkennt Dazu geht man in Netbeans auf den Men punkt Debug und dann auf den Unterpunkt Check for Deathlock Falls ein Deathlock gefunden wird wird dies im Debugging Fenster folgenderma en
197. scribes specific configuration info for Handlers 10 THHHHHHHHHBHHHHHHHBHHHHBHHHHHHHHBHHHHBHHHHHHHHHBHHHBHHHBHHHBBHHBE 11 12 java util logging ConsoleHandler formatter java util logging SimpleFormatter 13 Auf der Konsole sollen nur schwerwiegende Fehler ausgegeben werden 14 java util logging ConsoleHandler level SEVERE 15 16 java util logging FileHandler pattern h logging flyingroblets log 17 java util logging FileHandler limit 100 000 18 java util logging FileHandler count 1 19 java util logging FileHandler formatter java util logging XML Formatter 20 java util logging FileHandler level ALL 21 22 THHHHHHBHHHHHBHHHHHHHBHHHBHHHBHHHBHHHBHHHBHHHBHHHBHHHBHHHBHBHHBE 23 Facility specific properties 24 Provides extra control for each logger 25 THHHHHHHHHHHBHHHHHHHBHHHHBHHHBHHHBHHHHBHHHBHHHBHHHBHHHBHHHBHBHHBE 26 de flyingroblets billing level INFO 5 4 Beispiele im FotoSorter logging properties Datei vom FotoSorter Specify the handlers to create in the root logger all loggers are children of the root logger The following creates two handlers handlers java util logging ConsoleHandler java util logging FileHandler Set the default logging level for the root logger level ALL Set the default logging level for new ConsoleHandler instances java util logging ConsoleHandler level WARNING Set the default logging level for new FileHandler instances java util logging FileHandler formatter jav
198. se Rechts klickt und den Punkt Connect auswahlt 115 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik NetBeans IDE 6 9 1 File Edit wiew Navigate Source Refactor Run Debug Profil SEL E Projects EN Bi Databases E a Java DB zl default config am Services gi 15 Drivers Delete B HI idbc derby localhost 1527 newDBapp test on TEST E jdbc derbiy f Hocalhask 1527 sample app on APP ca Web Services amp Servers Jetzt ist die Datenbank fertig zum Bearbeiten Wir k nnen die Datenbank in zwei verschiedenen Weisen bearbeiten indem wir die Netbeans Funktionen nutzen oder indem wir die SQL Befehle von Hand eintragen 15 3 1 Datenbank von Hand bearbeiten Rechtsklick auf den erstellten Server und Execute Command wahlen NetBeans IDE 6 9 1 File Edit View Navigate Source Refactor Run Debug F Services 4n Im e E noa e me EE E EE EE EE Ho abi etccFixc 1r b t cGOLGLLh1LKLKhkkkznkbkhGGkc tta So ER E Databases ER a Java DE ES newDBapp e sample E Drivers erby Hlacalhost j APP Connect NULL Disconnect SOLL 55 zdefaulE config gt TS ston TEST Z7 fee iDBapp tes E Ek Execute camrmiarnd HEHE F ER SYS Refresh EE sm 4 eweg Peste Entf eet Properties Aas D a a
199. se swingworker Folgend ein kleines Beispiel wie dies richtig genutzt werden kann im Internet finden sich einige fehlerhafte Beispiele die sehr verwirren k nnen In dem Beispiel werden 2 Button erzeugt golest startet den Task stopTask unterbricht diesen Zus tzlich gibt es eine TextArea in die Zwischenergebnisse geschrieben werden 23 GoTestTask myTask DE 233 9 Action 234 public Task goTest DOS myTask new GoTestTask getApplication Hier wird der Task zwischengespeichert 236 return myTask EN 238 239 private class GoTestTask extends org jdesktop application Task Object Object Achtung z B void gt Object 240 24 GoTestTask org jdesktop application Application app 242 super app 243 jTextAreal setText null Vor Beginn die Textarea s ubern 244 245 246 Override 247 protected Object doInBackground throws InterruptedException 108 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 248 ArrayList lt Object gt ao new ArrayList lt Object gt z B f r Zwischenergebnisse 249 for int i 0 i lt 10 i 250 if hsCancelled Wichtig f r cancel 25 setMessage Working 1 252 Thread sleep 300L 259 setProgress i 0 9 Progressbar in Stufen hoch 254 255 ao add i 256 publish ao A oder auch publish i Zwischenergebnis ver ffentlichen 257 258 return true 259 260 261 Override Me
200. stellen zu mussen E unity Cass Comment Robustness UE Boundary Clas f Control Class Et Entity Claas Templates E Template Class Derrvaton Classifier Design Pattern i Design Pattern Sr Role 22 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 4 4 6 Das Arbeitsfenster Dies ist Ihr Arbeitsbereich in den Sie die _ uu einzelnen Elemente der verschiedenen Gart fens x gp dss beysnl x eh ad Joan etA era aaa Diagrammarten hineinziehen E 1 2 gt 4 L1 Neben den blichen Funktionen wie vergr ern verkleinern verschieben u s w gibt es hier 2 weitere sehr n tzliche Funktionen 1 Export Image Mit dieser Funktion erhalten Sie die M glichkeit ihr Diagramm als Bilddatei zu exportieren 2 Hierarchical Layout Diese Funktion ordnet Ihr Diagramm nach der hierarchischen otruktur Vorsicht Die Ver nderungen die die Funktion an Ihrem Diagramm vornimmt k nnen nicht r ckg ngig gemacht werden 4 5 Beispiele Im folgendem Kapitel finden Sie Beispiele zum Erstellen verschiedener Diagrammtypen unter Netbeans IDE 6 5 4 5 1 Erstellen eines Klassen Diagramms Zun chst wird ein neues Projekt erstellt und als Diagrammtyp Class Diagram gew hlt Danach werden 3 Class Elemente aus der Palette in das Arbeitsfenster gezogen re w aj Glen wy d T om d Gimp a Basic og 2 Bie SEE aoe 8u amp eee Ge Lili Creer Abb 11 Arbeitsfenster mit 3 Class Element
201. sults Results Output SyncFiles profile SyncFiles profile Tasks 100 100 ME 2 000 O 50 MB x Q MB US 20 54 30 20 55 00 a 54 30 20 55 00 20 54 30 20 55 00 OM Heap Size P Used Heap Surviving Generations Relative Time Spent in ac B Threads Bi Loaded Classes 9 3 9 Live Results Je nachdem welche Profiling Art wir ausgew hlt haben wird nun eine Statistik Uber die Geschwindigkeit oder aber ber die Objektreservierung und die Lebensl nge Diese Statistik wird automatisch alle 2 Sekunden aktualisiert 9 3 10 CPU Snapshot Der CPU Snapshot sammelt Daten ber die Zeit und die Anzahl der Aufrufe einer Funktion Die folgenden Men s sind ausw hlbar Call Tree Method Invocations Call Tree Ausf hrungszeit Ez Thread 11 6203 ms 100 1 zl un d A nza h d er A u f ru f e einer 84 syncfiles MSIE run 6203 ms 10095 1 H syncfiles SyncFilesView traverse java io File java io File syncfiles Director 5n a 6202 ms 10096 1 Methode Wwe rden ang ezeigt KE eben prever d a io File java io File syncfiles Directory EBENEN 6134 ms 35 396 2 i E Be ENEE o File o File a io File ini 66 4 ms 1 196 1 Es wird unterschieden in Sef tme 1 35 ms m H syncfiles DirectorySyncVisitor enterDirectory java io File java io File O 766ms 095 1 welchem Ko ntext E Self time 0 559 ms 0 1 D syncfiles DirectorySyncVisitor lt init gt
202. t JavaFX braucht nur die Java SE Runtime die auf allen Rechnern auf denen Java l uft schon vorhanden ist Damit erreicht JavaFX 75 aller PCs Adobe Flash erreicht dagegen 100 was f r die meisten an Anbieter eher attraktiv ist Microsoft Silverlight erreicht immerhin noch 5096 Angesichts dieser Zahlen ist es nicht leicht f r JavaFX sich zu etablieren Vor allem da viele Anbieter neben Flash in Zukunft auf HTML 5 setzen JavaFX legt ein besonderes Augenmerk auf Multimedia und 3D so wie 2D Grafik Viele Eigenschaften sind so angelegt das es f r Designer besonders einfach ist mit JavaFX zu arbeiten Es war vorher auch selten so einfach Apps f rs Web zu entwickeln Man braucht sehr wenig Vorkenntnisse und der Benutzer kann die eigene App jederzeit Downloaden Sie muss nur aus dem Browser raus gezogen werden JavaFX ist ein sehr einfaches RIA Framework zum entwickeln von Apps f r die verschiedensten Plattformen TV PC WEB Es ist besonders f r Multimedia Apps geeignet und unterst tzt 2D und 3D Grafik 20 2 Warum JavaFX JavaFX erm glicht es sehr einfach die Oberflache eines Apps Interaktiv zu gestalten mit Java ist es sehr umstandlich eine Oberflache zu erstellen die sich nachtr glich ver ndern soll Oder Objekte z B Bilder die sich transformieren Es werden ausserdem sehr viele verschiedenen Grafik und Video Formate unterst tzt Es gibt sogar ein Plugin f r Adobe Photoshop welches einfach die Grafiken die
203. t aus In dem nun erscheinenden Fenster w hlen Sie Monitor aus Da wir auch die Threads betrachten wollen setzen Sie nun einen Hacken bei Enable threads monitoring 4 Mit einem Klick auf Run startet der Profiler auch schon An der Stelle wo Sie eben noch durch Ihr Projekt navigieren konnten ist nun ein neuer Reiter erschienen Wahlen Sie diesen neuen Punkt Profiler aus Unter dem Punkt View finden Sie eine Graphik mit dem Titel Threads wenn Sie diese ausgewahlt haben erscheint auf der rechten Seite eine Ubersicht ber die aktuell existierenden Threads und deren otatus 5 Mit dem Starten des Profilers wurde ebenso das Programm gestartet Klicken Sie in dem Programm SyncFiles nun einmal auf Analyse Sie werden feststellen dass ein neuer Thread in unserer Ubersicht erschienen ist Klicken Sie nun auf Abbruch Der neue Thread der eben noch lief ist nun wieder gestoppt worden 6 Ein einzelner Thread kann also gestartet und wieder gestoppt werden Wie sieht es nun mit mehreren Threads aus Probieren wir dies nun aus Dazu klicken Sie mehrmals auf den Punkt Analyse in dem Programm SyncFiles Es erscheinen wie erwartet mehrere neue Threads in der Ubersicht Klicken Sie nun auf Abbruch Sie werden feststellen dass nur der neueste Thread abgebrochen wurde und die lteren Threads weiter laufen Wie k nnte dies nun also verhindert werden 7 Beenden Sie nun den Profiler indem Sie entweder das Programm einfach schlieBen oder indem Sie unter dem Men
204. tMap Simplelmmutat java awt font Provides classes and interface relating to fonts AbstractMarshallerimpi H Provides the Java 2D classes for defining and performing operations EAE ois 3 on objects related to two dimensional geometry ADSlractUwnabieoyncnronizi AbstractPreferences java awt im Provides classes and interfaces for the input method framework AbstractProcessor AbstractQueue _ 4T Leen uve ten met igi intertaces that ena the development of input methods AbstractQueuedLonaSynchr Y AAA that can be used with any Java runtime environment 4 D D facts nen wee scu aman Thees a xa el ca en alen enen enen Faw anaatina and anadiferina imianan Diese Dokumentation wurde mit Javadoc erstellt 11 2 Was ist Javadoc Javadoc ist ein Hilfsprogramm das aus dem Quellcode heraus automatisch eine Dokumentation erstellt Da dies automatisch geschieht stellt Javadoc eine Arbeitserleichterung gegen ber separater manueller Dokumentation dar Javadoc wurde genau wie Java von Sun bzw Oracle entwickelt und ist seit Version 2 im JDK von Sun Oracle enthalten Es wird mittlerweile als Industriestandard angesehen und ist deshalb auch in den meisten IDE s enthalten so auch in Netbeans 11 3 Funktionsweise von Javadoc Javadoc erstellt die Dokumentation aus dem Quellcode heraus Dazu wird vorher w hrend des Programmierens der Quellcode mit bestimmten Kommentaren so genannten Tags angereichert die dazu dienen Elemente
205. tandard Constructor welcher ein Ubergabeparameter hat und diesen der testzahl zuweist Bis hierhin also kein Problem 34 Farameterized Parameters 35 public static Collection lt Object gt data t 36 Object data new Object 1i i 100 1 200 ze 1232542 47 return Arrays asList data 38 Schauen wir uns nun die eigentlich Test Liste an Wir schreiben uns eine static Methode data mit R ckgabewert Collection lt Object gt In dieser Methode erstellen wir ein zweidimensionales Array des Typs Object und weisen ihm einige Werte zu Wer Collection noch nicht kennt kann sich an Vectoren oder Maps orientieren welche hnlich arbeiten Diesem Array bergeben wir nun unsere Testwerte mit denen wir unsere Tests durchf hren wollen Und das ist es auch schon Wir Testen nun alle unsere Testmethoden mit jeweils den drei Werten D we All 3 tests passed 0 15 s EQ bank bankAccountTest passed T testAbbuchenOhneException 0 passed 0 005 5 wy eM e testAbbuchenOhneException 1 passed 0 0 s e testAbbuchenOhneException 7 passed 0 036 5 7 6 Quellen 3 X http www frankwestphal de Unit T estingmitJUnit html http www2 b topia de node 14 http www fh wedel de si seminare ws02 Ausarbeitung 6 junit layoutO htm top 55 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 4 X http www cavdar net 2008 0 7 21 junit 4 in 60 seconds http www ordix de ORDIXN
206. thode zur Veroffentlichung 262 protected void process List lt Object gt values Achtung hier wieder void gt Object 263 for Object val values geht auch ohne super process values 264 jTextAreal append val toString System getProperty line separator 265 266 267 268 Override 269 protected void succeeded Object result Endergebnis Wird niemals bei cancel aufgerufen Falsche Beispiele im Internet 2770 setMessage Done Result is result 271 DI PIS Override 274 protected void cancelled Wird aufgerufen wenn cancel DS super cancelled 276 setMessage Cancelled Do 278 279 280 281 Action 282 public void stopTask 283 myTask cancel true Task killen 284 Das Ergebnis sieht dann wie folgt aus Ej Basic Application Example inl x FA Basic Application Example File Help File Help GC 0 1 O 1 qj 22 Ec 1 2 Jv E joa mer Lp r Le 8 Done Result is true Cancelled 109 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Ohne Abbruch Mit Stop gedr ckt Weiterhin lasst sich sehr einfach einstellen ob z B ein Button nach dem Ausfuhren geblockt werden soll solange die Action l uft Hierzu im ActionDialog in Advanced den Blockingtyp ausw hlen Set Action i X Set jButton1 s action property using Default editor Action goTest Vv Action s Class desktopapplicationt Desktop pp
207. tieren verschiedene Methoden Typen e Die log Methoden o Als Parameter werden hier das Log Level die Log Nachricht und optional beliebige Parameter bergeben e Die logp Methoden o Unterscheiden sich zu den log Methoden darin dass explizit Angaben zur Methode und Klasse in der die Log Nachricht erzeugt wird gemacht werden m ssen e Die logrb Methoden o Unterscheiden sich zu den logrb Methoden darin dass zus tzliche Angaben zum resource bundle gemacht werden k nnen Mit log tab Taste bietet Netbeans die M glichkeit eine vorgefertigte log Methode zu benutzten in der man nur noch Details ndern muss So f gt Netbeans folgenden Code ein Logger getLogger FotoFiles class getName log Level INFO Log Text Ebenso k mmert sich Netbenas direkt um die passenden Imports import java util logging Level import java util loggrng bogger wird automatisch eingef gt Jedem Logger wird explizit ein Log Level zugewiesen Passiert dies nicht wird das LogLevel des ersten Loggers bernommen dem ein Log Level zugewiesen wurde und in der Baumstruktur bergeordnet ist Folgende Log Level stehen zur Verf gung Severe h chste Prioritat Warning Info Standard Config Fine Finer Finest niedrigste Priorit t Nachdem eine der Log Methoden aufgerufen wurde passieren folgende Vorg nge bevor der Log Eintrag entsteht 33 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 1 Pr f
208. tik Das CVS soll hier in seiner ganzen Funktionsweise erl utert werden und die einzelnen Schritte vom Checkout vom Repository Commit Konfliktl sung bei verschiedenen Versionen und Diff Anzeige wird einzeln erlautert Doch erstmal ein wenig zur Geschichte von CVS in Netbeans CVS war das erste Versionierungs Tool das von Netbeans standardmaBig unterstutzt wurde In der heutigen Version von Netbeans werden zus tzlich noch die Versionierungs Tools Subversion Mercurial und Kenai unterst tzt dazu sp ter mehr im Abschnitt Alternativen zu CVS Die lteren Versionen von Netbeans werden im CVS abgespeichert w hrend der oourcecode mit Mercurial gesichert wird Soviel zur geschichtlichen Entwicklung Jetzt wird die komplette Abwicklung eines Projektes vom Checkout ber den Import bis zum Commit und den sonstigen Funktionen von CVS am Beispiel von Netbeans besprochen Das Ganze startet mit dem Checkout vom Repository wobei erstmal e Der Reiter Team und dort der Eintrag CVS gew hlt werden muss e Anschliessend wird Checkout angeklickt e Jetzt wird der Servername mit einem Pfad bestimmt evtl ist hier ein Passwortschutz eingebaut e Danach kann man einen Ordner ausw hlen Steps Module to Checkout 1 CVS Root Specify the CVS module and branch to checkout from CVS repository 2 Module to Checkout i Module testwwwhwww kb 60 Browse empty means all modules Branch Browse Specity location of
209. tragen k nnen package helloworld LD oo 10 11 lz public class Main i 13 14 15 16 17 public static void main string args i 18 ZU al H ER Hier geben wir nun System out println Hallo Welt ein und unser Programm ist fertig 17 public static void mMain String args i l8 System out print ini Hallo Welt 19 gt Nachdem wir mit F6 oder mit dem Button Run Main Project k nnen wir unsere Ausgabe schon sehen das Programm starten Dutput HelloWorld run D run D Hello World BUILD SUCCESSFUL total time O seconds dl M of Und hiermit ist unser kleines Programm fertig 12 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik 3 UML Einf hrung amp Beispiele Jan Bongartz 25 10 2010 3 1 Was ist UML Die Abk rzung UML steht f r Unified Modeling Language was auf Deutsch so viel hie wie Vereinheitlichte Modellierungssprache Diese Sprache definiert wichtige Bezeichner und Beziehungen die der Modellierung und Beschreibung von Software Ablaufen und Systemen dienen Diese zum Teil auch grafische Abbildungen finden im Gegensatz zu Programmiersprachen auf einer hohen Abstraktionsebene statt Die dabei definierten Begriffe lassen sich aufteilen in einerseits grafische Notationen f r Modelle und andererseits in Beziehungen von Objekten untereinander Zu den grafischen Notationen z hlen unter Anderem Klassendi
210. tusbar busyA nimationkate gt Tor inc i OF i busyIcans length i 1 busviceons i resgurceMap getrcon Statusbar busyvlcons i PET ik busylconTimer new Timer husy nimationRate new ActionListener i public void actionPerformed ActionEvent ei i ri idlelcon resourceMap dgetlIcon StatusBar idleIcon status inimatrionLabel setIconi idleIcon DprogressBar setVisiblei falzse TaskMonitor taskMonitor new TaskMonitor getapplication getContext ii taskMonitor addPropertyChangeListener new java beans PropertycChangeListeneri 1 public void propertyChange jJava beans PropertyChangeEvent ewt ti master Table qgqetselectionModel i addListselectionListener new ListSelectionListener 1 public void valueChanged ListSelectionEvent ei i ri bindingsroup addBindingListener new AbstractBindingListener i HOnzerride public void targetChanged Binding binding PropertyStateEvent event i ri entityManager qetTransaction begint private void setSaveHeeded boolean saveMeeded i public boolean isRecordSelected i 126 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Ee ag OE PH EH Een diction public void newRecord i desktopapplicationl Auto a new desktopapplicationl utaoa l entitvManadger persist la list addla in rom er A Lilie masterTable setRoawselectioninterval row row masterTab
211. u erzeugt ati MN wird oder eine alte Activity zur ck in den Vordergrund gerufen wird OnResume onResume Wird aufgerufen wenn die Activity nur teilweise verdeckt war und nun wieder Vollst ndig angezeigt werden soll The activity comes fo the foreground OnP ause Eege Die Activity ist hier nur teilweise sichtbar sie in front of he activity wird z B von einer anderen Activity berdeckt und reagiert nicht mehr auf Benutzereingaben Other application Sue OnStop Wird aufgerufen wenn die Activity vollst ndig in E den Hintergrund kommt und beendet wird Sie wird aber auf einen Activity Stack gelegt falls sie nochmal aufgerufen wird OnRestart Wird aufgerufen wenn z B der Benutzer die ZUur ck Taste gedr ckt hat und eine bereits vorhandene Activity aufgerufen wird OnDestroy Hier wird die Activity beendet und alle Ressourcen werden freigegeben Kann als Destruktor angesehen werden 19 2 Android in Netbeans einrichten 19 2 1 Android SDK Bevor Sie mit der Entwicklung von Android Anwendungen in Netbeans starten m ssen Sie sich die Android SDK runterladen http developer android com sdk index html Dieses Starterpaket enthalt u a Tools zum Debuggen und Testen Ihrer Anwendung Das wichtigste Tool ist der Emulator der Ihnen erm glicht ein komplettes Android Betriebssystem auf Ihrem Rechner nachzuahmen Wollen Sie ihre Anwendung direkt auf einem Android Gerat debug
212. ufenden Methode gesprungen Step Over Expresson Dieser Button ist dem Step Over Button hnlich allerdings liefert er mehr Details Wenn man diesen Button dr ckt bekommt man die Eingangs und Ausgangswerte der Methoden die ausgef hrt worden sind und man sieht welche Methoden innerhalb der zu berwachenden Methode aufgerufen worden sind Step Into Mit Hilfe dieses Buttons kann man in die Methode springen auf die der Debugger gerade zeigt und diese Zeile f r Zeile durchgehen Step Out Springt aus der derzeitigen Funktion zur ck in die aufrufende Funktion falls diese vorhanden ist Run To Cursor Der Debugger h lt das Programm an wenn er an der Zeile angekommen ist in der sich der Cursor derzeit befindet Apply Code Changes Dieser Button erm glicht es geanderten Code direkt auf das Programm anzuwenden ohne das dieses neu gestartet werden muss Wenn man auf diesen Button klickt wird also das sogenannte just in time debugging ausgef hrt Diesen Button kann man erst anklicken wenn man Code geandert hat und die geanderte Datei speichert ellis BE 8 3 Breakpoints 8 3 1 Allgemein Breakpoints deutsch Haltepunkte sind Kennzeichnungen im Programm die dem Debugger mitteilen dass er aktiv werden soll 8 3 2 Breakpoints in Netbeans In Netbeans gibt es sechs verschiedene Breakpoint Typen auf die ich gleich n her eingehen werde als erstes m chte ich allerdings erstmal Ihre Gemeinsamkeiten erlautern Alle Breakpoint
213. ung ob Log Level der zu loggenden Nachricht gr er oder gleich dem Log Level des Loggers ist Trifft dies zu folgt Schritt zwei Trifft dies nicht zu wird abgebrochen und die Nachricht damit nicht geloggt 2 Falls dem Logger Filter zugewiesen wurden wird gepr ft ob die Log Nachricht vom Filter erfasst wird oder nicht Wird sie vom Filter erfasst wird abgebrochen Sonst folgt Schritt drei 3 Die zu loggende Nachricht wird an alle dem Logger zugewiesenen Handler zur Weiterverarbeitung bergeben Im Standardfall wird die Nachricht rekursiv auch an alle Handler der Vater Logger bis zum root Logger bergeben Dieses Verhalten lasst sich mit setUseParentHandlers boolean useParentHandlers abstellen Beispiel eines Singleton Loggers public final class Logger private static Logger logger private Logger public static synchronized Logger getInstance if logger null logger new Logger return logger public vora Tog 9LbEXDg s Systeme 0u t pin Ln Ss I3 Toggerzget Instaneet 1ogit Log mach Ys 5 3 2 Handler Sie dienen der Ausgabe von Log Eintr gen z b in Datei oder Netzwerk Bevor der Handler die Log Eintr ge ver ffentlicht wird jeweils gepr ft ob das Log Level der Nachricht gr er als das des Handlers ist Trifft dies zu wird nachfolgend gepr ft ob m gliche gesetzte Filter den Log Eintrag aussortieren Filter k nnen eingesetzt werden um Log Eintr ge vor Verarbeitung durch den
214. urde keine Funktion gew hlt Nun wird Kind2 ebenso wie Kind1 mit den Eltern verbunden Ej Eltern Attributes private String eltern Hans und Marie private int anzKinder 2 erations public Eltern public String NER J ap 19 val Attributes private int Kind 1 private String name Lisa Attributes private int Kind 2 private String name Felix gval Abb 14 Das Diagramm nach dem Verbinde Um es etwas bersichtlicher bzw funktioneller zu machen f gen wir alle Elemente in einem Paket zusammen Daf r ziehen Sie sich ein Package Element in Ihren Arbeitsbereich und verbinden mittels Containment das Package mit den Eltern und den Kindern Optisch ansehnlicher wird es mithilfe des Hierarchical Layout Buttons 24 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik _ Bam UU Ba hee Pes if Ern eist s ie pred jir aj ae gi CPI e imie gg raj e Abb 15 Links vor und rechts nach dem hierarchischen anordnen Forward Engineering Aus Ihrem fertigen Klassen Diagramm aus Kapitel 4 1 k nnen Sie sich nun auch den entsprechenden Code von Netbeans generieren lassen Dazu erstellen Sie ein neues Projekt indem der Code generiert werden soll Danach Rechtsklick auf das UML Projekt und die Option Generate Code aus dem Kontextmen w hlen Es erscheint folgendes Fenster Y Taam E ee Target Project Sour oe Rest Generate
215. uss sich Netbeans im Debug Modus befinden und die Variable im aktuellen Kontext verf gbar sein Die lokalen Variablen der Methode die aktuell durchlaufen wird werden automatisch in dem Watches Fenster angezeigt Sie haben eine gr nen Route als Logo Die manuell hinzugef gten Watches haben einen silbernen Diamanten Wie man im unteren Screenshot sehen kann 8 4 3 Watches hinzuf gen Es gibt folgende Wege einen Watch in Netbeans hinzu zuf gen e in dem man sie per Drag amp Drop auf das Watches Fenster zieht e Man kann den Variablennamen im Editor markieren und im Kontextmenu New Watch ausw hlen e Eine weitere M glichkeit besteht ber das Menu von Netbeans Unter dem Men punkt Debug befindet sich ein Unterpunkt New Watch ber den man ebenfalls einen Watch hinzuf gen kann 8 4 4 Watches Fenster Name Type T Value So allum int E 52 LJ Static i Co class Class m class javaapplication3 Main db allum int Je int is 12 lt gt sum int D Dieses Symbol hat eine Variable oder ein Objekt das vom Benutzer selbst hinzugef gt wird Dieses Symbol haben im Watches Fenster Eintr ge die mehrere einzelne Eintr ge zusammen fassen weil sie nur einen Typ beschreiben In dem obigen Beispiel z B der Eintrag Static unter dem alle static Variablen zusammen gefasst sind Mit diesem Symbol werden Variablen und Typen gekennzeichnet die static sind Dieses Symbol haben alle Variablen die nicht static sind und i
216. w setContent View view gt onClick Event 1 Intent intent startActivity intent gt D verwendet Intent um andere Activity zu starten Eine Activity wird gebraucht um eine Oberfl che anzuzeigen Activitys sind sichtbar und k nnen miteinander zu einer komplexen Anwendung verkn pft werden Sie k mmert sich indem sie Daten auf dem Screen darstellt und Anwendereingaben entgegennimmt um die Kommunikation mit der Anwendung und dem Endbenutzer 19 1 4 Activity Lifecycle Mobile Ger te haben limitierte Ressourcen Im Falle knapper Ressourcen m ssen Prozesse beendet werden Daher greift das Android Betriebssystem in die Lebensdauer von Prozessen ein und kann jederzeit inaktive Activitys Anwendungen die nicht im Vordergrund sichtbar sind eigenst ndig beenden Daher hat jede Activity einen Lifecycle Lebenszyklus der vom Betriebssystem kontrolliert wird Durch das eigenst ndige Beenden von Prozessen ist die Gefahr von Datenverlust sehr hoch Nat rlich gibt es verschiedene Implementierungsmuster wie man das pl tzliche Beenden eines Prozess umgeht und wie man Datenverlust vermeidet 152 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik OnCreate Kann als Konstruktor angesehen werden dort wird die Activity erzeugt mit allen Initialisierungen Men s Layouts etc onCreate User navigates Onotart d hack to the Wird aufgerufen wenn die Activity ne
217. weiterung der HTML bzw AM Tags definiert JavaServer Pages werden unter Verwendung eines speziellen JSP Compilers in Java Quellcode umgewandelt Dieser Quellcode der einem Java Servlet entspricht wird im Anschluss durch den Java Compiler in Bytecode umgewandelt Die so erzeugten Java 135 168 Wintersemester 2010 2011 Seminar an der FH Niederrhein FB Informatik Klassen k nnen dann von einem mit einer Java Ausf hrungseinheit ausgestatteten Webserver ausgef hrt werden Abbildung 5 Http Engine Http Servlet Respons Abbildung 5 17 2 2 Elementtypen Statischer Inhalt Der statische Inhalt sind all jene Elemente die vom Webserver in die HTTP Response Antwort ohne Ver nderung bernommen werden z B HTML Tags So w re ein normales HTML Dokument ganzlich ohne JSP Elemente wie eingebetteten Java Code oder JSP Aktionen eine g ltige JSP denn JSP erlaubt es zwar dynamische Daten in statischen Inhalt einzuf gen erfordert dies aber nicht Daraus folgt dass wie bei jeder Templatesprache der Ersteller des statischen Inhalts also des Designs keinerlei Java Kenntnisse ben tigt sobald HTML Strukturen durch Java Code erzeugt werden geht die Verbindung jedoch verloren und das Layout kann an diesen Stellen nur noch vom Programmierer ge ndert werden Da es sich bei einer JavaServer Page um eine dynamische Komponente handelt kann diese aber auch ganzlich ohne statische Elemente auskommen Auf diese
218. y is generally found at C Users user id netbeans version On other Microsoft Windows systems this directory is generally found at C Documents and Settings user id netbeans version Abb 4 Ordnerstruktur der Version 6 Tim Programmordner und zugeh rige Readme datei images G nbprofiler ss dataprovider doc zip 3 netbeans Ge dataprovider src zip DO 60 GUIExamplesDescription htral Io 61 Se htrel 4 01 zip CH ant Ge js 12 tlddac zip CH config Ge jsr311 api dac zip E Lg docs 4 SAAN Ge jstl 1 1 dac zip L2 isstubs netbeans Ces Lj lib i quickstart jump html modules Ge struts tags zip LH sources Ge syntaxrefz zip FH LH startup Se visualweb rowset doc zip update Beispiele Be visualweb rowset sre zip OD update tracking FB LH var 3 LH netbeans derby E sample 9 log ID seg 3 netbeans registratian C 6 1 lt xml version 1 0 encoding UTF 8 standalone no gt lt registration_status version 1 0 gt lt status gt registered lt status gt lt timestamp gt 2009 01 10 16 20 30 GMT lt timestamp gt delay 7 delay registration status Abb 5 Ordnerstruktur im Ordner des Users 1 3 Beispiel amp bungsprogramm Um an einer kleinen Anwendung die im Seminar auftauchenden Programmiertechniken ben zu k nnen wurde gemeinsam ein kleines Programm entwickelt Das Programm soll im Wesentlichen zur Synchronisierung von Fotodateien dienen die mit 2 verschiedenen
Download Pdf Manuals
Related Search
Related Contents
Valueline VLSP40100W30 coaxial cable BROCHURE PDF - s3.amazonaws.com RCA S21114 Speaker User Manual Ryobi RE170VS Router User Manual scarica il manuale caution - Thermo Scientific 死亡または重傷などを負う可能性があります Edbak SV13 ADVance MS Quick Reference Guide Guía del usuario BETA2013_02_14 [ Guía de Copyright © All rights reserved.
Failed to retrieve file