Gesellschaft für Informatik e.v. Arbeitskreis Java User Group Thomas Bauer, Peli Service GmbH: SWT / JFace

Größe: px
Ab Seite anzeigen:

Download "Gesellschaft für Informatik e.v. Arbeitskreis Java User Group 27.03.2006 Thomas Bauer, Peli Service GmbH: SWT / JFace"

Transkript

1 Gesellschaft für Informatik e.v. Arbeitskreis Java User Group Thomas Bauer, Peli Service GmbH: SWT / JFace 20. März 2006, Thomas Bauer, Seite 1

2 Abstract Mit SWT und JFace wurde (ursprünglich für die Implementierung der Eclipse- Oberfläche) ein GUI-Baukasten geschaffen, welcher es ermöglicht mit Java performante und funktional mächtige GUIs zu erstellen. In dem Vortrag wird ein Überblick über SWT und JFace vermittelt. Es werden die Möglichkeiten dargestellt, die man mit SWT / JFace hat. Eine MVC-Implementierung mittels eines Viewers wird etwas detaillierter vorgestellt. Es wird auch eine in SWT / JFace implementierte Lösung kurz gezeigt. Inhalt: Kurzer Rückblick: AWT und Swing. Installation / Lizenz SWT-Klassenstruktur Ein kurzes SWT-Hello-World zum warm werden Dispose Layouts, Widgets, Event-Handling Wrapper-Klassen, Custom Controls und weitere Features Tabellen Graphics JFace: Application Window, Ressourcen-Verwaltung, Dialoge JFace: Viewer 20. März 2006, Thomas Bauer, Seite 2

3 Das Unternehmen Firmensitz 20. März 2006, Thomas Bauer, Seite 3

4 Unternehmensdaten Firmensitz Niederlassung Gründung Hartstraße Germering Carl-Schurz-Straße Bremen März 2006, Thomas Bauer, Seite 4

5 Produkte und Dienstleistungen Programmpaket für die Realisierung von Forderungen und Forderungsmanagement FOB Front Office Banking - IT System für alle Geschäftsprozesse von Banken und Sparkassen Integrierte Warenwirtschaftssysteme für Presse, Buch & Convenience plus Business-Software für den Fachgroßhandel mit offener Kommunikationsschnittstelle Referenzen: CC Bank, KSK Göppingen, Falter, VALORA, Börner, HEW, Interrent Europcar, Hansen u.a. 20. März 2006, Thomas Bauer, Seite 5

6 zur Person Diplominformatiker Thomas Bauer Studium: Fachhochschule München Abteilungsleiter bei der Fa. Peli Service GmbH seit 1995 Profil: Kernaufgaben: Personalführung Projektleitung Systemanalyse, Anforderungsmanagement Erstellung Feinkonzepte Datenmodellierung, Softwarearchitektur Leitung / Durchführung Anwendungsentwicklung Qualitätssicherung Kommunikation mit den Kunden 20. März 2006, Thomas Bauer, Seite 6

7 Java-Background Java seit /2006 Entwicklung einer Ernährungsanalyse-Software. o selber entwickelte Datenbankzugriffschicht (Zugriff und Persistenz). Abbildung von Tabellen / Cursors durch dynamische Objekte, d.h. keine Abbildung der Datenbankstruktur in Code bzw. in Klassen. o Realisierung der Geschäftslogik wie Aufbereitung von Analyseergebnissen. Realisierung der Client-Oberfläche mit SWT und JFace. J2EE 2003 und 2005 intensive Einarbeitung (Aufwand ca. 60 Tage). kleineres Projekt durchgeführt (Web-Container-Programmierung mit Servlets, benutzerdefiniert Tags, und JSPs). Technisches Umfeld Java, Eclipse 3, IBM WebSphere Studio Application Developer, Servlets, JSPs, benutzerdefinierte Tags, XML, HTML, Access 2002 über JDBC/ODBC- Bridge, MySQL, Poseidon for UML, Spring 20. März 2006, Thomas Bauer, Seite 7

8 AWT (Abstract Windowing Toolkit) (1) ab 1995 Basis für die von Netscape (damals) mit geförderte Applet-Technologie. "peer approach": Jedes Java GUI Widget hat eine korrespondierende Komponente im darunter liegenden Betriebssystem (native widget, Java code widgets wrapping native widgets). Die Implementierung des Peer Systems und die Kommunikation zwischen der Java-Komponenten und dem Peer sind in der Low-Level-Implementierung der JVM realisiert. Das Screen Painting wird vom Native Widget vorgenommen. "physical event" native implementation library JVM Java Code: event handler, some action native implementation library JVM Java Code: "display..." 20. März 2006, Thomas Bauer, Seite 8

9 AWT (Abstract Windowing Toolkit) (2) Der Java-Level-Code bleibt plattformübergreifend identisch. Die Umsetzung auf die jeweilige Plattform erfolgt in der Low-Level-Implementierung der JVM. "lowest denominator approach": Die Funktionalität ist beschränkt auf die Möglichkeiten, die alle relevanten Plattformen realisieren können => High- Level-Widgets müssen dann von den Entwicklern für die Zielplattform selber entwickelt werden. 20. März 2006, Thomas Bauer, Seite 9

10 Swing (1) ab 1998 Der Name war zuerst eine Codename für das entsprechende Projekt und wurde dann beibehalten Kein Native Code, keine Native Widgets Weil keine Abhängigkeit zu Native Widgets gegeben ist, kann unter Swing jedes beliebige Widget für jede Plattform zur Verfügung gestellt werden. Swing ermöglicht die Adaption des Look&Feel der jeweiligen Plattform bzw. von "pluggabel look and feels". Eine Applikation kann sich also Windows-like oder Motif-like oder Mac-like oder im ganz individuellen Stil präsentieren. Swing geht über das reine Widget-Handling hinaus. Es definiert ein model für das Halten der Daten einen view für die Anzeige der Daten einen controller für die Behandlung von User-Input d.h. die meisten Swing-Komponenten sind nach dem MVC-Desing-Pattern realisiert. 20. März 2006, Thomas Bauer, Seite 10

11 Swing (2) Hauptproblem von Swing: "speed" (oder besser gesagt der Mangel an Geschwindigkeit). Dieses Problem konnte auch mit JITs, JVM-Optimierungen und Java-Optimierungen nicht befriedigend beseitigt werden. Swing- Applikationen wirken träger als die nativen Alternativen. weiteres Problem von Swing: Trotz der Offenheit bezüglich "Look and Feel" hat sich diese in der Praxis nicht in der gewünschten Form realisieren lassen. Vorrausetzung für jede "Look and Feel"-Version ist, dass diese in der Java Library und damit im Rahmen einer J2SE-Version zur Verfügung gestellt wird. In der Praxis führte das dazu, dass man häufig nicht die benötigte Version des "Look and Feel" zur Verfügung hat. Läuft z.b eine Applikation unter J2SE 1.4.1, dann hat sie auch unter XP nur ein Windows 98 - Look and Feel zur Verfügung. 20. März 2006, Thomas Bauer, Seite 11

12 SWT / JFace ab 2001 im ersten Schritt wurde SWT entwickelt, um die Eclipse-GUI zu realisieren. "peer architectur" wie bei AWT, d.h SWT nutzt die Native Widget Library des zu Grunde liegenden OS und "zieht" um diese einen Java-Mantel, über welchen die Applikation mit diesen Native Widgets "spricht". Widgets, zu denen entsprechende Native Widgets fehlen, werden mit Java realisiert. Ergebnis: sehr performante Lösung von ausreichendem Funktionsumfang. JFace bildet eine Abstraktionsschicht, die über SWT gelegt wurde. Ziel 1: Abstrahierung von SWT-Implementierungsdetails. Ziel 2: Realisierung des MVC-Pattern. 20. März 2006, Thomas Bauer, Seite 12

13 Installation / Lizenz Zur Installation SWT wird mit Eclipse geliefert (selbe Versionsnummer!), ist aber auch separat erhältlich (JAR-Files, Native Library) für einen Einsatz unabhängig von Eclipse. JFace wird nur mit Eclipse geliefert, ist aber ebenfalls unhabhängig von Eclipse verwendbar. Um die Libraries zu erhalten, muss man aber Eclipse herunter laden. Man benötigt für JFace dann (Library-Namen können von Version zu Version unterschiedlich sein!): org.eclipse.jface_<version>\jface.jar org.eclipse.jface.text_<version>\jfacetext.jar org.eclipse.osgi_3.0.0_<version>\osgi.jar org.eclipse.text_<version>\text.jar org.eclipse.core.runtime_<version>\runtime.jar Lizenztechnisches SWT/JFace ist verfügbar unter einer Open Source License, die so gestaltet ist, dass man SWT in den eigenen Applikationen unter jedem beliebigen Lizenzschema verwenden kann (aus "The Definitive Guide to SWT and JFace by Rob Warner with Robert Harris, 2004" - bei Bedarf lizenzrechtliches bitte selber konkret prüfen). 20. März 2006, Thomas Bauer, Seite 13

14 SWT Klassenstruktur (1) 20. März 2006, Thomas Bauer, Seite 14

15 SWT Klassenstruktur (2) Widget: (abstrakte Klasse) Basisfunktionalität für Widgets und zugehörige Listener (dispose, adddisposelistener, addlistener, remove..). Control: (abstrakte Klasse) Control und Widget werden häufig synonym verwendet. Allerdings ist eine Control-Instanz eine Spezialisierung von Widget in dem Sinne, dass eine Control-Instanz ein "Gegenstück" (natives Element) in der zu Grunde liegenden Plattform hat. Andere Widgets dagegen (Item-Abkömmlinge, DragSource,...) sind dagegen mit Java-Mitteln realisiert. Entsprechend stellt Control die Basisfunktionalität zu Widgets, die durch native Elemente realisiert werden. Scrollable: (abstrakte Klasse) Alle Controls, welche mit Scrollbar ausgerüstet werden können. Composite: Alle scrollbaren Controls, welche weitere Controls enthalten können. 20. März 2006, Thomas Bauer, Seite 15

16 SWT Klassenstruktur (3) Canvas: Instanzen dieser Klasse ermöglichen das Zeichnen von beliebigen Graphiken (z.b. ein "cooles" Window mit einem Loch in der Mitte für eine Juke Box). Demo: JukeBox 20. März 2006, Thomas Bauer, Seite 16

17 SWT Klassenstruktur (4) Decorations: Diese Klasse stellt die notwendigen Eigenschaften zur Verfügung, die für in der Plattform darzustellende Windows notwendig sind (z.b. Minimize, Rahmen setzen,...). Für die Realisierung eines Windows muss jedoch die Unterklasse Shell verwendet werden. Shell: Eine Shell ist ein von der zu Grunde liegenden Plattform gemanagtes Window. Top level shells werden als child einer Display-Instanz angelegt und können vom Benutzer maximiert, minimiert, bewegt oder in der Größe verändert werden. Secondary shells (bzw. dialog shells) werden als child einer anderen shell angelegt und existieren nur im Kontext des parent window. 20. März 2006, Thomas Bauer, Seite 17

18 SWT Klassenstruktur (5) Display: Diese Klasse repräsentiert die Verbindung zw. SWT und dem GUI-System der zu Grunde liegenden Plattform. Hauptsächlich werden durch Display die Event Loop und der UI Thread sowie andere Threads verwaltet. Naturgemäß gibt es pro Plattform eine eigene Display-Implementierung. Grundlagen hierzu: Auf Betriebssystemebene läuft GUI-Event-Handling immer so ab: Die Events (Mouse-Click, Taste,...) werden in eine Event- Queue eingestellt. Die Basis jeder Windows-GUI ist eine Event-Loop, welche die GUI-Events aus der Event-Queue liest und entsprechende Aktionen auslöst. Die Event-Loop läuft in der Regel in einem eigenen Thread, um nicht durch länger dauernde Aktionen blockiert zu werden. 20. März 2006, Thomas Bauer, Seite 18

19 Hello World mit SWT (1) package beispiele; import org.eclipse.swt.widgets.display; import org.eclipse.swt.widgets.shell; import org.eclipse.swt.widgets.label; import org.eclipse.swt.swt; public class HelloWorld { public static void main(string[] args) { // eine Display-Instanz stellt die Verbindung dar zwischen SWT // und der zu Grunde liegenden Plattform Display display = new Display(); // ein Shell-Instanz repräsentiert ein vom Desktop bzw. // window manager verwaltetes top-level window. Shell shell = new Shell(display);... // Der Label wird "innerhalb" der Shell-Instanz angelegt Label label = new Label(shell, SWT.CENTER); label.settext("hello, World"); label.setbounds(shell.getclientarea()); 20. März 2006, Thomas Bauer, Seite 19

20 Hello World mit SWT (2)... shell.open(); // while Benutzer das Main-Window nicht geschlossen hat while (!shell.isdisposed()) { // wenn kein Event "ansteht" if (!display.readanddispatch()) { display.sleep(); // warte auf ein Event display.dispose(); Für die meisten Anwendungen kann man dem hier gezeigten Pattern folgen. Es muss eine Display-Instanz erzeugt werden, bevor irgendein Fenster erzeugt wird. Und das Display muss disposed werden, wenn die Shell geschlossen wird. 20. März 2006, Thomas Bauer, Seite 20

21 Hello Word mit STW (3) Für den Compile eines Programmes, welches SWT/JFace nutzt muss swt.jar in den Java Build Path aufgenommen werden (project properties) 20. März 2006, Thomas Bauer, Seite 21

22 Hello Word mit SWT (4) Für den Run eines Programmes mit SWT/JFace wird die Java Native Interface - Implementierung (JNI) des Windowing System benötigt. Das Runtime Environment muss so konfiguiert werden, dass die entsprechenden Libraries gefunden werden. 20. März 2006, Thomas Bauer, Seite 22

23 nützliche Tipps die aktuelle Display-Instanz ist jederzeit über die statische Funktion Display.getCurrent erhältlich und muss daher nicht durch die Anwendung "durchgeschleppt" werden. die aktuelle Shell-Instanz ist jederzeit über die statische Funktion Display.getActiveShell erhältlich und muss daher nicht durch die Anwendung "durchgeschleppt" werden. Will man eine neues Fenster erzeugen, welches unter Windows nicht als eigene neue Task erscheinen soll (sondern einfach nur einer Unterfenster sein soll), dann muss dieses Unterfenster die JFace- Klasse Window erweitern. SWT erzeugt das native Element in dem Moment, wenn das Java Widget erzeugt wird und zerstört das native Element in dem Moment, wenn das Java Widget zerstört wird. Man muss sich also um die nativen Elemente nicht explizit kümmern. 20. März 2006, Thomas Bauer, Seite 23

24 Dispose (1) Unter SWT muss man Objekte, die man angelegt hat auch entsorgen (dispose). Grund: Die Java garbage collection ist nicht "direkt" genug um einer notwendigen schnellen Freigabe von Betriebssystem-Ressourcen genüge zu tun. Die Disposal-Bemühungen kann man nach folgenden Regeln ausrichten: Wenn du es angelegt hast, dann entsorge es auch // das muss ich entsorgen, weil ich es anlege Color color = new Color(display, 255, 0, 0); // create a red color // das darf ich nicht entsorgen, weil ich es nicht angelegt habe (ich habe // es nur "geliehen" und eine Entsorgung könnte unangenehme Nebeneffekte // haben - z.b. wenn es noch von anderen Objekten benutzt wird) Color color = display.getsystemcolor(swt.color_red) Die Entsorgung eines Parent entsorgt automatisch die Children. Kurz: wird die Parent-Shell eines Windows disposed, dann sind damit automatisch alle Widgets des Windows disposed. 20. März 2006, Thomas Bauer, Seite 24

25 Dispose (2) Achtung: An ein Widget übergebene Color- oder Font-Objekte sind keine Children. Diese müssen explizit entsorgt werden! Text text = new Text(shell, SWT.BORDER); // Create a text field Font font = new Font(display, "Arial", 14, SWT.BOLD); // Create the new font test.setfont(font); // Set the font into the text field Dasselbe gilt für Instanzen der Klassen Image, GC (Graphik Context), Cursor, Printer, Display, Shell, Clipboard. Am Ende einer Applikation braucht man die Ressourcen jedoch nicht zu entsorgen. Es geht nur um Ressourcen, die während der Laufzeit der Applikation entfernt werden ohne die Applikation zu beenden. 20. März 2006, Thomas Bauer, Seite 25

26 Dispose (3) Ressource Store Die Verwaltung der Ressourcen kann sehr aufwendig sein (insbesondere bei Farben, Fonts und Images). Daher arbeitet man nach dem Prinz "Resource Store". Eine Instanz eines solchen Resource Store wacht über das "Leben" mehrerer (gleichartiger) Ressourcen, also z.b. über das Leben der in der Anwendung verwendeten Color-Instanzen. Ein Instanz kann auf diese Weise mehrfach verwendet werden was nebenbei auch noch Speicher spart. public class ColorStore { private static Map store = new HashMap(); public static Color getcolor(string name, Device device, int r, int g, int b) { Object obj = store.get(name); if (obj == null) { Color newcolor = new Color(device, r, g, b); store.put(name, newcolor); return newcolor; return (Color) obj; public static void dispose() { Iterator iter = store.values().iterator(); while (iter.hasnext()) { Color color = (Color) iter.next(); color.dispose(); 20. März 2006, Thomas Bauer, Seite 26

27 Layouts (1) null layout: Jedes Widget verwaltet seine Position selber (... setbounds(59, 10, 38, 15)) Layouts regeln die Anordnung von Controls innerhalb einer Composite (Shell ist eine von Composite abgeleitete Klasse) und passen in der Regel die Anordnung auch dynamisch an, wenn ein Resize des Windows erfolgt. Das Layout ist eine entkoppelnde Schicht zwischen den Controls in einer Composite und der Composite. Ein Layout wird erzeugt und dann der Composite "übergeben" FillLayout layout = new FillLayout(); layout.type = SWT.HORIZONTAL; shell.setlayout(layout); 20. März 2006, Thomas Bauer, Seite 27

28 Layouts (2) Bei RowLayout, GridLayout und FormLayout werden jedem Widget die Konfigruationsparameter mittels einer Instanz von RowData, GridData bzw. FormData übergeben. RowData rowdata = new RowData(); rowdata.height = 50; rowdata.width = 100: button.setlayoutdata(rowdata); 20. März 2006, Thomas Bauer, Seite 28

29 Layouts Klassenstruktur 20. März 2006, Thomas Bauer, Seite 29

30 FillLayout Dieser Layout-Manager setzt einfach ein Feld nach dem anderen, d.h. nutzt den Platz der Reihe nach aus. Es können weder Margins noch Spacings gesetzt werden alle Widgets werden gleich breit und hoch dargestellt. Es wird er verfügbare Platz vollständig ausgenutzt die Anordnungsreihenfolge kann horizontal oder vertikal sein Sinnvoll z..b. für ein Container, der ein Panel repräsentiert 20. März 2006, Thomas Bauer, Seite 30

31 GridLayout Die Widgets der Maske werden in einem Gitternetz angeordnet (also in einer Tabelle, welche in jeder Zelle eine Widget enthält) Es ist möglich ein Widget über 2 Zellen zu "spannen" Grabbing: Es kann eingestellt werden, dass sich einzelne Widgets mit der Maske vergrößern (verkleinern) während die anderen in ihrer Größe unverändert bleiben Höhe und Breite eines Widget können individuell angegeben werden (für die Flexibilität der Oberfläche auf verschiedenen Rechnern und bei Größenänderung der Maske ist es aber besser die Größe eine Widget nicht hart zu konfigurieren) Demo: JUG GridLayoutComplex 20. März 2006, Thomas Bauer, Seite 31

32 RowLayout Funktionsweise ähnlich FillLayout, d.h. die Felder werden der Reihe nach angeordnet, eines nach dem anderen Es gibt aber mehr Konfigurationsmöglichkeiten, als beim FillLayout. Es können Margins und Spacings gesetzt werden und die Höhe/Breite jedes Widgets kann individuell angegeben werden. Der Verlauf der Felderanordnung kann entweder vertikal oder horizontal sein Demo: JUG RowLayoutHorizontal 20. März 2006, Thomas Bauer, Seite 32

33 FormLayout (1) Es wird mit FormAttachments gearbeitet. Es kann für jede Seite eines Widgets (left, right, top, bottom) ein FormAttachment festgelegt werden welches ausdrückt, wie diese Seite des Widget in Relation zum FormLayout bzw. in Relation zu anderen Widgets positioniert werden soll. In der Regel wird pro Widget ein horizontales Attachment (left oder right) und ein vertikales Attachment (top oder bottom) sowie eine Größe festgelegt. Widgets ohne FormAttachment werden in der linken oberen Ecke übereinander gelagert. 20. März 2006, Thomas Bauer, Seite 33

34 FormLayout (2) Demo: JUG UebungFormLayout // *** Label ausrichten ganz oben, linke Position bei 10% der Maske FormData data1 = new FormData(); data1.top = new FormAttachment(0, 0); data1.left = new FormAttachment(10, 0); label.setlayoutdata(data1); // *** erste Feld: ganz oben, rechts vom Label FormData data2 = new FormData(); data2.top = new FormAttachment(0, 0); data2.left = new FormAttachment(label, 5); data2.width = 200; text.setlayoutdata(data2); // *** zweites Feld: unter erstes Feld, linke Ausrichtung am ersten Feld // *** Breite identisch zu erstem Feld FormData data3 = new FormData(); data3.top = new FormAttachment(text, 2); // Abstand 2 Punkte data3.left = new FormAttachment(text, 0, SWT.LEFT); data3.right = new FormAttachment(text, 0, SWT.RIGHT); text1.setlayoutdata(data3); // *** drittes Feld: unter zweites Feld, linke Ausrichtung am zweiten Feld // *** Breite identisch zu zweitem Feld FormData data4 = new FormData(); data4.top = new FormAttachment(text1, 2); // Abstand 2 Punkte data4.left = new FormAttachment(text1, 0, SWT.LEFT); data4.right = new FormAttachment(text1, 0, SWT.RIGHT); text2.setlayoutdata(data4); 20. März 2006, Thomas Bauer, Seite 34

35 FormLayout(3) // *** Tabelle: unter drittes Feld, so breit wie Maske mit Einzug 5 Pixel FormData data5 = new FormData(); data5.top = new FormAttachment(text2, 5); // Abstand 5 Punkte data5.left = new FormAttachment(0,5); data5.right = new FormAttachment(100,-5); table.setlayoutdata(data5); 20. März 2006, Thomas Bauer, Seite 35

36 StackLayout und Sonstiges zu Layouts StackLayout Demo JUG StackLayoutTest enthalten in org.eclipse.swt.custom. StackLayout legt alle Controls übereinander. Immer einer der Controls ist als der spezifiziert, der gerade angezeigt wird. eigene Layouts Es können eigene Layouts implementiert werden. Z.B. kann man das aus AWT bekannte BorderLayout abbilden, welches die Controls direktional ausrichtet (north, south, west, east, center). Beispiele mit Codegenerierung in Eclipse Im Rahmen der Plug-in-Examples von Eclipse erhält man auch einen View mit Layoutbeispielen, über den man im Dialog Layouts konfigurieren uns sich den resultierenden Code dann anschauen kann 20. März 2006, Thomas Bauer, Seite 36

37 Widgets (1) Widget Purpose Styles Events Button Selectable control that issues notification when pressed and/or released. BORDER, CHECK, PUSH, RADIO, TOGGLE, FLAT, LEFT, RIGHT, CENTER, ARROW (with UP, DOWN) Dispose, Control*, Selection Canvas Composite control that provides a surface for drawing arbitrary graphics. Often used to implement custom controls. BORDER, H_SCROLL, V_SCROLL, NO_BACKGROUND, NO_FOCUS, NO_MERGE_PAINTS, NO_REDRAW_RESIZE, NO_RADIO_GROUP Dispose, Control* Combo Selectable control that allows the user to choose a string from a list of strings, or optionally type a new value into an editable text field. BORDER, DROP_DOWN, READ_ONLY, SIMPLE Dispose, Control*, DefaultSelection, Modify, Selection Label Non-selectable control that displays a string or an image. BORDER, CENTER, LEFT, RIGHT, WRAP, SEPARATOR (with HORIZONTAL, SHADOW_IN, SHADOW_OUT, SHADOW_NONE, VERTICAL) Dispose, Control* 20. März 2006, Thomas Bauer, Seite 37

38 Widgets (2) Widget Purpose Styles Events List Selectable control that allows the user to choose a string or strings from a list of strings. BORDER, H_SCROLL, V_SCROLL, SINGLE, MULTI Dispose, Control*, Selection, DefaultSelection Menu User interface object that contains menu items. BAR, DROP_DOWN, NO_RADIO_GROUP, POP_UP Dispose, Help, Hide, Show MenuItem Demo: Eclipse IDE Selectable user interface object that represents an item in a menu. CHECK, CASCADE, PUSH, RADIO, SEPARATOR Dispose, Arm, Help, Selection ProgressBar Non-selectable control that displays progress to the user, typically in the form of a bar graph. BORDER, INDETERMINATE, SMOOTH, HORIZONTAL, VERTICAL Dispose, Control* Sash Demo: Eclipse IDE Selectable control that allows the user to drag a rubber banded outline of the sash within the parent window. Used to allow users to resize child widgets by repositioning their dividing line. BORDER, HORIZONTAL, VERTICAL Dispose, Control*, Selection 20. März 2006, Thomas Bauer, Seite 38

39 Widgets (3) Widget Purpose Styles Events ScrollBar Selectable control that represents a range of positive numeric values. Used in a Composite that has V_SCROLL and/or H_SCROLL styles. HORIZONTAL, VERTICAL Dispose, Selection Slider Selectable control that represents a range of numeric values. A slider is distinguished from a scale by providing a draggable thumb that can adjust the current value along the range. BORDER, HORIZONTAL, VERTICAL Dispose, Control*, Selection TabFolder (TabItem) Demo: Eclipse IDE Composite control that groups pages that can be selected by the user using labeled tabs. BORDER Dispose, Control*, Selection 20. März 2006, Thomas Bauer, Seite 39

40 Widgets (4) Widget Purpose Styles Events Text Editable control that allows the user to type text into it. BORDER, SINGLE, READ_ONLY, LEFT, CENTER, RIGHT, WRAP, MULTI (with H_SCROLL, V_SCROLL) Dispose, Control*, DefaultSelection, Modify, Verify ToolBar (ToolItem) Composite control that supports the layout of selectable tool bar items BORDER, FLAT, WRAP, RIGHT, SHADOW_OUT HORIZONTAL, VERTICAL Dispose, Control* CoolBar (CoolItem) Composite control that allows users to dynamically reposition the cool items contained in the bar. BORDER Dispose, Control* Tree (TreeItem) Demo: Eclipse IDE Selectable control that displays a hierarchical list of tree items that can be selected by the user. BORDER, H_SCROLL, V_SCROLL, SINGLE, MULTI, CHECK Dispose, Control*, Selection, DefaultSelection, Collapse, Expand 20. März 2006, Thomas Bauer, Seite 40

41 Widgets (5) Widget Purpose Styles Events Table Selectable control that displays a list of table items that can be selected by the user. Items are presented in rows that display multiple columns representing different aspects of the items. BORDER, H_SCROLL, V_SCROLL, SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION, VIRTUAL Dispose, Control*, Selection, DefaultSelection TableColumn Selectable user interface object that represents a column in a table. LEFT, RIGHT, CENTER Dispose Dispose, Move, Resize, Selection TableItem Selectable user interface object that represents an item in a table. Dispose 20. März 2006, Thomas Bauer, Seite 41

42 Event-Handling Klassenstruktur 20. März 2006, Thomas Bauer, Seite 42

43 Observer Design Pattern SWT kommuniziert Events unter Verwendung des Observer Design Pattern. Hierbei registrieren sich ein oder mehrere Objekte (Observer bzw. Listener) für die Observation eines Events, welches vom observierten Objekt (Subject) ausgelöst werden kann. Anders herum betrachtet: Das Objekt, welches das Event auslösen kann, verwaltet eine Collection von Observern (Listenern). 20. März 2006, Thomas Bauer, Seite 43

44 untyped Listener Ein "allgemeiner" Listener, der ein "allgemeines" Event erhält. Dieses Event enthält Klassenvariablen für alle möglichen Event-Typen (und in jeder speziellen Verwendung sind die nicht benötigten Klassenvariablen mit garbage belegt). Über die addlistener-methode des Widgets wird der Listener beim Widget angemeldet. Signatur: void addlistener(int eventtype, Listener listener); Die Implementierung der Schnittstelle Listener erfolgt in der Regel über eine innere Klasse. button.addlistener (SWT.SELECTION, new Listener() { public void handleevent(event e) { switch (e.type) { case SWT.SELECTION; System.out.println("Button betätigt"); break; 20. März 2006, Thomas Bauer, Seite 44

45 typed Listener Für jeden Event-Typ gibt es eine eigene Klasse, eine eigene Schnittstelle und eine eigene addlistener-methode. Jedes Widget bietet add-listener- Methoden zu den Events, die es liefern kann. Z.B. Widget vom Typ Text: void addmodifylistener(modifylistener listener); void addselectionlistener(selectionlistener listener); void addverifylistener(verifylistener listener); Da viele dieser Listener mehrere Methoden anbieten, müssten diese bei der Implementierung immer alle codiert werden, ob benötigt oder nicht. Daher stellt SWT Implementierungen von allen Listenern zur Verfügung, die mehr als eine Methode anbieten. Die Namen dieser abstrakten Implementierungsklassen enden mit "...Adapter" Die Implementierung der Listener erfolgt i.d.r. über eine innere Klasse. shell.addcontrollistener (new ControlAdapter () { public void controlresized (ControlEvent e) { label.setbounds (shell.getclientarea ()); ); 20. März 2006, Thomas Bauer, Seite 45

46 Events Übersicht (1) Event Type Arm Control Dispose Focus Help Key Menu Description Generated when a widget, such as a menu item, is armed. Generated when a control is moved or resized. Generated when a widget is disposed, either programmatically or by the user. Generated when a control gains or loses focus. Generated when the user requests help for a widget, such as pressing the F1 key. Generated when the user presses or releases a keyboard key when the control has keyboard focus. Generated when a menu is hidden or shown. Widgets MenuItem Control, TableColumn, Tracker Widget Control Control, Menu, MenuItem Control Menu 20. März 2006, Thomas Bauer, Seite 46

47 Events Übersicht (2) Event Type Modify Mouse MouseMove MouseTrack Paint Description Generated when a widget's text is modified. Generated when the user presses, releases, or double clicks the mouse over the control. Generated as the user moves the mouse across the control. Generated when the mouse enters, exits, or hovers over the control. Generated when the control needs to be repainted. Widgets CCombo, Combo, Text, StyledText Control Control Control Control 20. März 2006, Thomas Bauer, Seite 47

48 Events Übersicht (3) Event Type Selection Shell Traverse Tree Verify Description Generated when the user selects an item in the control. Generated when a shell is minimized, maximized, activated, deactivated, or closed. Generated when a control is traversed by the user using keystrokes. Generated when the user expands or collapses items in the tree. Generated when a widget's text is about to be modified. Gives the application a chance to alter the text or prevent the modification. Widgets Button, CCombo, Combo, CoolItem, CTabFolder, List, MenuItem, Sash, Scale, ScrollBar, Slider, StyledText, TabFolder, Table, TableCursor, TableColumn, TableTree, Text, Toolitem, Tree Shell Control Tree, TableTree Text, StyledText 20. März 2006, Thomas Bauer, Seite 48

49 Wrapper-Klassen Dialoge SWT stellt Wrapper-Klassen für verschiedene Standarddialoge zur Verfügung: Message Box Color Selection Dialog Directory Selection Dialog File Open / File Save Dialog Font Selection Dialog Print Dialog eigene Dialoge Die Dialoge können modal sein (d.h. es können keine Eingaben in andere Windows der Applikation gemacht werden, solange der Dialog offen ist) 20. März 2006, Thomas Bauer, Seite 49

50 Custom Controls (1) Hierbei handelt es sich zum einen um weitere Controls mit zusätzlichen Eigenschaften, die nicht im Standardsatz untergebracht sind und zumeist plattformspezifische Erweiterungen enthalten. Zum anderen werden hat man auch die Möglichkeit eigene Widgets zu erstellen. Diese werden ebenfalls als Custom Widgets bezeichnet. Control Purpose Styles Events CCombo Demo: Eclipse View SWT Custom Similar to Combo, but custom drawn to allow for using a combo without a border. This class was developed for using combos inside table cells. BORDER, FLAT, READ_ONLY Dispose, Control*, Selection 20. März 2006, Thomas Bauer, Seite 50

51 Custom Controls (2) Control Purpose Styles Events CLabel Similar to Label, but supports clipping of text with ellipsis. Also supports a gradient effect for the background color as seen in the active workbench view. Does not support wrapping. CENTER, LEFT, RIGHT, SHADOW_IN, SHADOW_OUT, SHADOW_NONE Dispose, Control* CTabFolder (CTabItem) Demo: Eclipse View SWT Custom Similar to TabFolder, but supports additional configuration of the visual appearance of tabs (top or bottom) and borders. BORDER, FLAT, BOTTOM, TOP Dispose, Control*, Selection 20. März 2006, Thomas Bauer, Seite 51

52 Custom Controls (3) Control SashForm Demo: Eclipse View SWT Custom ScrolledComposite StyledText TableTree (TableTreeItem) ViewForm... Purpose Composite control that lays out its children in a row or column arrangement and uses a Sash to separate them so that the user can resize them. Composite control that scrolls its contents and optionally stretches its contents to fill the available space. Editable control that allows the user to type text. Ranges of text inside the control can have distinct colors (foreground and background) and font styles (bold and regular). Selectable control that displays a hierarchical list of items that can be selected by the user. Items are presented in rows that display multiple columns representing different aspects of the items. Composite control that lays out three children horizontally and allows programmatic control of layout and border parameters. Used in the workbench to implement a view's label/toolbar/menu local bar. 20. März 2006, Thomas Bauer, Seite 52

53 Tabellen (1) Tabelleneigenschaften SWT.SINGLE Es kann immer eine Tabellenzeile zu einer Zeit selektiert werden SWT.MULTI Es können mehrere Tabellenzeilen gleichzeitig selektiert sein SWT.CHECK Plaziert eine Check-Box am Anfang jeder Zeile SWT.FULL_SELECTION Die ganze selektierte Reihe wird eingefärbt SWT.HIDE_SELECTION selektierte Reihen / Zellen werden nicht eingefärbt Demo: JUG AsciiTable 20. März 2006, Thomas Bauer, Seite 53

54 Tabellen (2) Table table = new Table(shell, SWT.MULTI SWT.FULL_SELECTION); table.setlinesvisible(true); TableColumn column1 = new TableColumn(table, SWT.NONE); TableColumn column2 = new TableColumn(table, SWT.NONE); TableColumn column3 = new TableColumn(table, SWT.NONE); TableItem item = new TableItem(table, SWT.NONE); item.settext(new String[]{"Wert 1/1", "Wert 1/2", "Wert 1/3"); item = new TableItem(table, SWT.NONE); item.settext(new String[]{"Wert 2/1", "Wert 2/2", "Wert 2/3"); item = new TableItem(table, SWT.NONE); item.settext(new String[]{"Wert 3/1", "Wert 3/2", "Wert 3/3"); item = new TableItem(table, SWT.NONE); item.settext(new String[]{"Wert 4/1", "Wert 4/2", "Wert 4/3"); for (int i = 0, n = table.getcolumncount(); i < n; i++) { table.getcolumn(i).pack(); 20. März 2006, Thomas Bauer, Seite 54

55 Graphics Die Klasse GC (Graphical Context) bildet den Kern von SWT's Graphics Engine und bietet alle notwendigen Methoden um Shapes, Images oder Text zu zeichnen. 20. März 2006, Thomas Bauer, Seite 55

56 Text anzeigen und editieren Die gesamte Funktionalität der Eclipse-Editoren basiert auf SWT-Features. SWT's StyledText Widget zeigt Text in verschiedenen Farben, Styles, Größen und Fonts an, ist allerdings pro StyledText Widget auf eine Größe und einen Font beschränkt. Das StyledText Widget hat seine Hauptfocus auf der Erstellung von Programmiereditoren. Das Widget bietet die Voraussetzung für einen vollständigen Texteditor mit Clipboard-Funktionalität, Druckfunktion, Syntax-Highlighting, Word Wrapping, Tabulatoren setzen, Hotkeys etc. 20. März 2006, Thomas Bauer, Seite 56

57 weitere Features Drag and Drop (DragSource und DropTarget) Drucken (Printer und PrintDialog). Druck von Text und Graphik Tip: Das StyledText-Widget bittet eine Methode an, seinen Inhalt zu drucken. D.h. es kann unter Umständen sinnvoll sein, seinen Druckinhalt in einem StyledText-Widget aufzubauen und von dort zu drucken. Web Browsing Demo: Eclipse View SWTBrowser SWT bietet einen Web-Browsing-Komponente an, die in die Applikation eingebettet werden kann (erforderlich: Windows IE 5.0, Linux GTK Mozilla 1.5 GTK, Linux Motif Mozilla 1.5 GTK, Photon) 20. März 2006, Thomas Bauer, Seite 57

58 JFace JFace bildet eine Abstraktionsschicht, die über SWT gelegt wurde. Ziel 1: Abstrahierung von SWT-Implementierungsdetails. Ziel 2: Realisierung des MVC-Pattern. Dabei bildet JFace allerdings keine vollständige Schicht über SWT. Vielmehr stehen die Abstraktionen in verschiedenen Bereichen zur Verfügung während der Rest weiter direkt über SWT abgewickelt wird. JFace deckt folgende Bereiche ab: Application Window Ressourcenverwaltung (Color's, Font's, Image's) Dialoge (vorbereitete Standarddialoge) Action's (Handling der verschiedenen Inputkanäle: Menu, CoolItem, Keyboard) Dialoge für die Verwaltung von Preferencen Viewer (Ändern / Einfügen in Tree's, List's oder Table's) Text Viewer (Texteditoren) Erstellung von Wizards 20. März 2006, Thomas Bauer, Seite 58

59 JFace Überblick 1 FontRegistry 20. März 2006, Thomas Bauer, Seite 59

60 JFace ApplicationWindow Window (sowie ApplicationWindow) sind die JFace-Abstraktion von Shell. Das Applikations-Window wird durch Erweiterung von ApplicationWindow gebildet. Die SWT-Event-Loop für das Main-Window ist abstrahiert. ApplicationWindow bietet zudem Unterstützung von MenuBar, ToolBar, CoolBar und Status-Linie. public class HelloWorld extends ApplicationWindow { public HelloWorld() { // HelloWord constructor super(null); public void run() { setblockonopen(true); // true: Don't return from open() until window closes open(); // Open the main window Display.getCurrent().dispose(); // Dispose the display // Erzeugung des Inhaltes des Main-Window protected Control createcontents(composite parent) { Label label = new Label(parent, SWT.CENTER); label.settext("hello, World"); return label; public static void main(string[] args) { new HelloWorld().run(); 20. März 2006, Thomas Bauer, Seite 60

61 JFace Ressourcenverwaltung Schriftarten, Farben und Images werden durch folgende Klassen verwaltet: FontRegistry ImageRegistry JFaceColors Mit dem Dispose der Display-Instanz werden auch die in diesen Klassen verwalteten Graphikobjekt dispose'd. Die Klasse JFaceResources organisiert eine einheitliche Font- und Colorverwaltung für JFace-GUI-Komponenten. Die Klasse ist eine Sammlung statischer Methoden. So kann z.b. die Schriftart für Dialoge von der Klasse erfragt werden oder es können die aktiven FontRegistry-Instanzen ermittelt werden. Beispiel für Registrierung und Verwendung eines Image: imageregistry = new ImageRegistry(); // Bildregistratur anlegen // Graphik für Anzeige in MessageDialog laden final Image image = new Image(sShell.getDisplay(),"image/signal_rot.gif"); imageregistry.put("bild_fuer_message", image); // Bild registrieren... Verwendung dann mit: imageregistry.get("bild_fuer_message"); 20. März 2006, Thomas Bauer, Seite 61

62 JFace Dialoge (1) JFace stellt eine Reihe von konfigurierbaren Dialogklassen zur Verfügung, die zudem auch erweitert (extend) werden können, um eigenen Dialog zu bilden. Von TitleAreaDialog abgeleiteter Dialog, der im frei gestaltbarem Bereich um 2 Eingabefelder erweitert wurde. Input abfragen mit Validierung 20. März 2006, Thomas Bauer, Seite 62

63 JFace Dialoge (2) 20. März 2006, Thomas Bauer, Seite 63

64 JFace Action Über die Klasse Action ist es möglich, eine Aktion an mehrere Formen von User-Input zu binden Aktivierung über Menu Button in einer ToolBar Hot-Key Z.B. Start Druck über Menu, über ToolBar oder über CTRL+P 20. März 2006, Thomas Bauer, Seite 64

65 JFace Preference Framework Ablage von Preferences: Windows => (binary) Registry (früher ini-text-files) UNIX => Text-Files Java => Text-Files (Property Files) Das JFace Preference Framework basiert auf den Properties Files. JFace bietet ein Framework für den Aufbau von Dialogen zur Bearbeitung von Preferences. Unter anderem besteht auch die Möglichkeit einen Listener anzumelden, der bei Änderungen der Preferences informiert wird. 20. März 2006, Thomas Bauer, Seite 65

Anlage Table mit Spalten (Spaltensorter wird hier bereits zugewiesen!)

Anlage Table mit Spalten (Spaltensorter wird hier bereits zugewiesen!) Dokumentiertes Beispiel für die Implementierung eines Viewers als Ergänzung um Folienvortrag SWT / JFace Thomas Bauer, Peli Service Gmbh, tbberg@t-online.de // Class EdbGuiE0100 // Erfassung Tagesprotokoll

Mehr

Eclipse User Interface Guidelines

Eclipse User Interface Guidelines SS 2009 Softwarequalität 06.05.2009 C. M. Bopda, S. Vaupel {kaymic/vaupel84}@mathematik.uni-marburg.de Motivation (Problem) Motivation (Problem) Eclipse is a universal tool platform - an open, extensible

Mehr

Grafische Benutzerschnittstellen

Grafische Benutzerschnittstellen Grafische Benutzerschnittstellen Benjamin Rust 22. Dezember 2006 Software Engineering Projekt Gliederung 1. Teil: Ergonomie und Gestaltung 1. Die ersten GUIs 2. Software-Ergonomie 2.1. ISO 9241-110 2.2.

Mehr

JFS 2005: Java und JFace in der Praxis

JFS 2005: Java und JFace in der Praxis E2 JFS 2005: Java SWT und JFace in der Praxis Dr. Hartmut Kocher Kirchplatz 5 82049 Pullach im Isartal Tel.: 089-7448500 http://www.cortex-brainware.de hwk@cortex-brainware.de Bild 1 Übersicht Einführung

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

Java Desktop Anwendungen

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

Mehr

Java-Schulung Grundlagen

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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Eclipse und Java Einheit 01: Einführung in Eclipse

Eclipse und Java Einheit 01: Einführung in Eclipse Eclipse und Java Einheit 01: Einführung in Eclipse Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis 1 Hintergrundwissen

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

p^db=`oj===pìééçêíáåñçêã~íáçå=

p^db=`oj===pìééçêíáåñçêã~íáçå= p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for

Mehr

Ein Manager mit CardLayout layout/cards.java

Ein Manager mit CardLayout layout/cards.java 201 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Ein Manager mit CardLayout layout/cards.java CardLayout dient vor allem zum Aufbau von Inspektoren: In der gleichen Fläche soll je nach

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Group and Session Management for Collaborative Applications

Group and Session Management for Collaborative Applications Diss. ETH No. 12075 Group and Session Management for Collaborative Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZÜRICH for the degree of Doctor of Technical Seiences

Mehr

Business Applika-onen schnell entwickeln JVx Framework - Live!

Business Applika-onen schnell entwickeln JVx Framework - Live! Business Applika-onen schnell entwickeln JVx Framework - Live! - Enterprise Applica-on Framework h&p://www.sibvisions.com/jvx JVx ermöglicht in kürzester Zeit mit wenig Source Code hoch performante professionelle

Mehr

Top Tipp. Ref. 08.05.23 DE. Verwenden externer Dateiinhalte in Disclaimern. (sowie: Verwenden von Images in RTF Disclaimern)

Top Tipp. Ref. 08.05.23 DE. Verwenden externer Dateiinhalte in Disclaimern. (sowie: Verwenden von Images in RTF Disclaimern) in Disclaimern (sowie: Verwenden von Images in RTF Disclaimern) Ref. 08.05.23 DE Exclaimer UK +44 (0) 845 050 2300 DE +49 2421 5919572 sales@exclaimer.de Das Problem Wir möchten in unseren Emails Werbung

Mehr

ECLIPSE. Ich gehe davon aus, dass Sie Eclipse bereits installiert haben und die grundlegenden Begriffe kennen (Starthilfe Eclipse hilft Ihnen dabei).

ECLIPSE. Ich gehe davon aus, dass Sie Eclipse bereits installiert haben und die grundlegenden Begriffe kennen (Starthilfe Eclipse hilft Ihnen dabei). In dieser Starthilfe Um was geht s? Eclipse für SWT konfigurieren SWTHelloWorld JAR für Stand-Alone SWT Applikationen (+JRE!) Öffnen und schliessen von Projekten Eclipse unter Linux SWT unter Linux JAR

Mehr

Bisherige Erfahrungen mit Eclipse auf NonStop. programmer retire? Hans-Fried Kirschbaum CommitWork GmbH 12/22/2010 1

Bisherige Erfahrungen mit Eclipse auf NonStop. programmer retire? Hans-Fried Kirschbaum CommitWork GmbH 12/22/2010 1 Bisherige Erfahrungen mit Eclipse auf NonStop programmer retire? Hans-Fried Kirschbaum CommitWork GmbH 12/22/2010 1 agenda what is Eclipse? a look at NSDEE a look at CDS 12/22/2010 2 what is Eclipse? 12/22/2010

Mehr

Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com. z/os Explorer. 2014 IBM Corporation

Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com. z/os Explorer. 2014 IBM Corporation Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com z/os Explorer Agenda Introduction and Background Why do you want z/os Explorer? What does z/os Explorer do? z/os Resource Management

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

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

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Christian Kurz SWT Projekt WS 07/08

Christian Kurz SWT Projekt WS 07/08 Christian Kurz SWT Projekt WS 07/08 1. Allgemeine Aspekte der generativen GUI- Entwicklung 2. Entwicklung mit Hilfe von GUI-Designern 3. Entwicklung mit Hilfe deklarativer GUI- Sprachen 4. Modellgetriebene

Mehr

Ant in Eclipse Starthilfe

Ant in Eclipse Starthilfe IN DIESER KURSEINHEIT Einleitung o Um was geht's eigentlich? Hello World o Das Ant Skript Mehrere Targets und Properties o Hello World Ausgabe Ant Launch Configurations o Definition o Modifikation o Nutzung

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

synedra View Embedded Michael Doppler, synedra it GmbH

synedra View Embedded Michael Doppler, synedra it GmbH <m.doppler@synedra.com> synedra View Embedded Michael Doppler, synedra it GmbH 2015 synedra information technologies Zusammenfassung IndiesemDokumentwirdbeschrieben,wiesynedraViewEmbeddedinApplikationenandererHerstellerintegriertwerdenkann.

Mehr

Software Engineering II

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

Mehr

Add-Ins in ArcGIS Desktop

Add-Ins in ArcGIS Desktop Add-Ins in ArcGIS Desktop Jochen Manegold ESRI Deutschland GmbH 21. Juni 2011, Zürich 1 ESRI Deutschland GmbH, 2010 GmbH 2010 Das ArcGIS System Browser Basic client Cloud/Web services Rich client Visualize

Mehr

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold Codegeneratoren mit Xtend2 11.04.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was ist Xtend2? 2. Xtend2 Konzepte 3. Hands On! 3 4 8 20 2 Was ist Xtend2? Funktionale, objektorientierte Sprache

Mehr

APEX 5.0 DOAG Mai 2014

APEX 5.0 DOAG Mai 2014 APEX 5.0 DOAG Mai 2014 APEX 5.0 16 Jahre MuniQSoft GmbH Tätigkeitsbereiche: Oracle Support Hotline: Mo-Fr 8.00 18.00 Uhr Erweiterung um Rufbereitschaft auch am Wochenende möglich Oracle IT-Consulting &

Mehr

SemTalk Services. SemTalk UserMeeting 29.10.2010

SemTalk Services. SemTalk UserMeeting 29.10.2010 SemTalk Services SemTalk UserMeeting 29.10.2010 Problemstellung Immer mehr Anwender nutzen SemTalk in Verbindung mit SharePoint Mehr Visio Dokumente Viele Dokumente mit jeweils wenigen Seiten, aber starker

Mehr

Schritt 4: Hallo Enterprise Bean

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

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java und Datenbanksysteme Datenbankanbindung mit JDBC Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von

Mehr

Android Processes & Services

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

Mehr

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part XI) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

Mehr

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3 User Manual for Marketing Authorisation and Lifecycle Management of Medicines Inhalt: User Manual for Marketing Authorisation and Lifecycle Management of Medicines... 1 1. General information... 2 2. Login...

Mehr

Anleitung zur Schnellinstallation TFM-560X YO.13

Anleitung zur Schnellinstallation TFM-560X YO.13 Anleitung zur Schnellinstallation TFM-560X YO.13 Table of Contents Deutsch 1 1. Bevor Sie anfangen 1 2. Installation 2 Troubleshooting 6 Version 06.08.2011 1. Bevor Sie anfangen Packungsinhalt ŸTFM-560X

Mehr

Software Engineering II

Software Engineering II Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Installation der MWE Plugins Von der Juno Update Site installieren (falls noch nicht vorhanden): MWE SDK Xpand SDK 2 TFD Projekt

Mehr

eclipse - Entwicklungsumgebung und mehr ETIS SS05

eclipse - Entwicklungsumgebung und mehr ETIS SS05 eclipse - Entwicklungsumgebung und mehr ETIS SS05 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung

Mehr

ColdFusion 8 PDF-Integration

ColdFusion 8 PDF-Integration ColdFusion 8 PDF-Integration Sven Ramuschkat SRamuschkat@herrlich-ramuschkat.de München & Zürich, März 2009 PDF Funktionalitäten 1. Auslesen und Befüllen von PDF-Formularen 2. Umwandlung von HTML-Seiten

Mehr

Ein ganz normaler Tag. Eclipse und Ich

Ein ganz normaler Tag. Eclipse und Ich Ein ganz normaler Tag Eclipse und Ich 2008 Bredex GmbH Version 2.3 Agenda Motivation 08:32 Uhr Los geht s 08:47 Uhr Einstieg in die tägliche Arbeit 08:48 Uhr Support 09:30 Uhr Standup Meeting 10:12 Uhr

Mehr

Ingenics Project Portal

Ingenics Project Portal Version: 00; Status: E Seite: 1/6 This document is drawn to show the functions of the project portal developed by Ingenics AG. To use the portal enter the following URL in your Browser: https://projectportal.ingenics.de

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage C# CLR CIL MCS ECMA-335 Linux.Ne t Was ist.net? Microsoft Homepage:.NET is the Microsoft Web services strategy to connect information, people, systems and devices through software. Mono Handbuch:.Net besteht

Mehr

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2 ReadMe zur Installation der BRICKware for Windows, Version 6.1.2 Seiten 2-4 ReadMe on Installing BRICKware for Windows, Version 6.1.2 Pages 5/6 BRICKware for Windows ReadMe 1 1 BRICKware for Windows, Version

Mehr

USB Treiber updaten unter Windows 7/Vista

USB Treiber updaten unter Windows 7/Vista USB Treiber updaten unter Windows 7/Vista Hinweis: Für den Downloader ist momentan keine 64 Bit Version erhältlich. Der Downloader ist nur kompatibel mit 32 Bit Versionen von Windows 7/Vista. Für den Einsatz

Mehr

Von Keerthikan T. & Siyar Kolusari 10.12.2012

Von Keerthikan T. & Siyar Kolusari 10.12.2012 M226 OBJECT ORIENTIERT PROGRAMMIEREN Project Checkers An online multi-player Java Game Von Keerthikan T. & Siyar Kolusari 10.12.2012 Inhaltsverzeichnis 1. Projektbeschreibung 3 1.1. Inhalt 3 2. Ziele

Mehr

Mac Desktop Entwicklung

Mac Desktop Entwicklung headquarter Mac Desktop Entwicklung Phillipp Bertram DEVELOPER DAY 20vierzehn http://www.admiralmarkets.com/images/mtmac/metatrader4-for-mac-os.png 2 "There is no reason for any individual to have a computer

Mehr

Markus BöhmB Account Technology Architect Microsoft Schweiz GmbH

Markus BöhmB Account Technology Architect Microsoft Schweiz GmbH Markus BöhmB Account Technology Architect Microsoft Schweiz GmbH What is a GEVER??? Office Strategy OXBA How we used SharePoint Geschäft Verwaltung Case Management Manage Dossiers Create and Manage Activities

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel App Framework vom Intel XDK vertraut. Es wird Schritt für Schritt

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Übungen zur Android Entwicklung

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

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Algorithms for graph visualization

Algorithms for graph visualization Algorithms for graph visualization Project - Orthogonal Grid Layout with Small Area W INTER SEMESTER 2013/2014 Martin No llenburg KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum

Mehr

Erfolgreiche Unternehmen bauen ihre SharePoint-Dashboards mit Visio Sehen heißt verstehen! Claus Quast SSP Visio Microsoft Deutschland GmbH

Erfolgreiche Unternehmen bauen ihre SharePoint-Dashboards mit Visio Sehen heißt verstehen! Claus Quast SSP Visio Microsoft Deutschland GmbH Erfolgreiche Unternehmen bauen ihre SharePoint-Dashboards mit Visio Sehen heißt verstehen! Claus Quast SSP Visio Microsoft Deutschland GmbH 2 Inhalt Was sind Dashboards? Die Bausteine Visio Services, der

Mehr

Performance Tuning mit @enterprise

Performance Tuning mit @enterprise @enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank

Mehr

Variablen manipulieren per JDI

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

Mehr

Parameter-Updatesoftware PF-12 Plus

Parameter-Updatesoftware PF-12 Plus Parameter-Updatesoftware PF-12 Plus Mai / May 2015 Inhalt 1. Durchführung des Parameter-Updates... 2 2. Kontakt... 6 Content 1. Performance of the parameter-update... 4 2. Contact... 6 1. Durchführung

Mehr

Android Java Specifics / Basic IO

Android Java Specifics / Basic IO Dalvik virtual machine Registermaschine anstelle einer Stackmaschine Optimiert für geringen Speicherverbrauch Umwandlung von.class Dateien in.dex-format mit Hilfe von dx Jedes Programm läuft als eigener

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine

Mehr

Techniken der Projektentwicklung

Techniken der Projektentwicklung Einleitung Architektur Swing Beispiele Aufgabe Techniken der Projektentwicklung Swing Concepts Ingo Lütkebohle Termin 11 Ingo Lütkebohle Techniken der Projektentwicklung 1 Einleitung Architektur Swing

Mehr

Seminar Multimediale Werkzeuge Sommersemester 2011

Seminar Multimediale Werkzeuge Sommersemester 2011 Seminar Multimediale Werkzeuge Sommersemester 2011 Dipl.-Ing. Marco Niehaus marco.niehaus@tu-ilmenau.de 09.06.2011 Page 1 Android Development - Installation Java SDK wird benötigt (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

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

Mehr

Frontend Migration from JSP to Eclipse Scout

Frontend Migration from JSP to Eclipse Scout Frontend Migration from JSP to Eclipse Scout Peter Nüdling Raiffeisen Schweiz Jérémie Bresson, Peter Barthazy BSI Business Systems Integration AG Eclipse Finance Day, Zürich, 31. Oktober 2014 Seite 1 WebKat:

Mehr

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI The expert for industrial and automotive communication IXXAT Hauptsitz Geschäftsbereich USA IXXAT Automation GmbH IXXAT Inc. Leibnizstr.

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Open Source IDE - eclipse ETIS SS04

Open Source IDE - eclipse ETIS SS04 Open Source IDE - eclipse ETIS SS04 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung 2 Motivation

Mehr

Abstimmen mit dem Gupta Report Builder

Abstimmen mit dem Gupta Report Builder Abstimmen mit dem Gupta Report Builder Ergebnisse von Abstimmungen werden im Internet häufig als Punktreihen dargestellt. Aber ist es auch möglich eine solche einfache Darstellung einer Abstimmung mit

Mehr

Klausur vom 14. Juni 2004. Informatik 4

Klausur vom 14. Juni 2004. Informatik 4 Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik, Burgdorf Klasse: EV02-1 Name, Vorname: Klausur vom 14. Juni

Mehr

Hauptschritte einer JDBC-App

Hauptschritte einer JDBC-App JDBC Java DataBase Connectivity Sammlung von Klassen und Interfaces zur Arbeit mit Datenbanken auf Basis von SQL Package java.sql Datenbankmanagementsystem und eine oder mehrere Datenbanken Jdbc Driver,

Mehr

Object Relational Mapping Layer

Object Relational Mapping Layer Object Relational Mapping Layer Views Controlers Business logic GUI OO-application logic Object-relational-Mapping Relational DBMS PHP (propel) 1/18 Propel - Persistance Layer OR-Mapper für PHP Portierung

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

3.9 Grundelemente einer Benutzeroberfläche

3.9 Grundelemente einer Benutzeroberfläche 92 3 Grundlagen einer ios-anwendung 3.8.4 Target-Actions Einer der häufigsten Anwendungsfälle bei einer Oberfläche ist das Betätigen einer Schaltfläche durch einen Anwender, woraufhin eine bestimmte Aktion

Mehr

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

Frequently asked Questions for Kaercher Citrix (apps.kaercher.com)

Frequently asked Questions for Kaercher Citrix (apps.kaercher.com) Frequently asked Questions for Kaercher Citrix (apps.kaercher.com) Inhalt Content Citrix-Anmeldung Login to Citrix Was bedeutet PIN und Token (bei Anmeldungen aus dem Internet)? What does PIN and Token

Mehr

HowTo. Konfiguration VSA unter SAP NetWeaver 2004(s) Java

HowTo. Konfiguration VSA unter SAP NetWeaver 2004(s) Java HowTo Konfiguration VSA unter SAP NetWeaver 2004(s) Java Avira Support Juni 2009 Inhaltsverzeichnis SAP Systemvoraussetzungen... 2 SAP Plattformen... 2 OS Systemvoraussetzungen... 2 Java-spezifische Konfiguration

Mehr

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren DB-Programmierung Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele static SQL verstehen Build-Prozess / Art des Datenzugriffs Host-Variablen Vor- / Nachteile dynamic SQL verstehen

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

Die SharePoint-Welt für den erfahrenen.net-entwickler. Fabian Moritz MVP Office SharePoint Server ITaCS GmbH

Die SharePoint-Welt für den erfahrenen.net-entwickler. Fabian Moritz MVP Office SharePoint Server ITaCS GmbH Die SharePoint-Welt für den erfahrenen.net-entwickler Fabian Moritz MVP Office SharePoint Server ITaCS GmbH SharePoint Object Model IFilter Webpart Connections Webparts Web Server Controls Custom Field

Mehr

Employment and Salary Verification in the Internet (PA-PA-US)

Employment and Salary Verification in the Internet (PA-PA-US) Employment and Salary Verification in the Internet (PA-PA-US) HELP.PYUS Release 4.6C Employment and Salary Verification in the Internet (PA-PA-US SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten.

Mehr

Praktische Anwendungsentwicklung mit Oracle Forms

Praktische Anwendungsentwicklung mit Oracle Forms Praktische Anwendungsentwicklung mit Oracle Forms von Perry Pakull, Stefan Jüssen, Walter H. Müller 1. Auflage Hanser München 2007 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 41098 5 Zu Leseprobe

Mehr

Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems

Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Android Persistenz Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 3 besprechen (inkl. Repetition) Die wichtigsten

Mehr

RS-232 SERIAL EXPRESS CARD 1-PORT. Expansion 111829

RS-232 SERIAL EXPRESS CARD 1-PORT. Expansion 111829 RS-232 SERIAL EXPRESS CARD 1-PORT Expansion 111829 1. Introduction equip RS-232 Serial Express Card works with various types of RS-232 serial devices including modems, switches, PDAs, label printers, bar

Mehr

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013 GTUG Java Arbeitskreis Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung September 2013 Jürgen Depping CommitWork GmbH Seite 1 Info@CommitWork.de www.commitwork.de Agenda Was ist OmnivoBase?

Mehr

A) Durchsuchen von Datenbanken im Internet durch Endnote

A) Durchsuchen von Datenbanken im Internet durch Endnote EINLEITUNG/ANWEISUNGEN ZU DIESEM TEXT Wir werden die obere Liste (File/ Edit usw.) benutzen, obwohl die meisten Funktionen auch möglich mit rechtem Mausklick, mit Kombinationen der Tastatur oder mit den

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

Einführung in die Cross-Plattform Entwicklung Responsive Webdesign mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Responsive Webdesign mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Responsive Webdesign mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Responsive Webdesign vertraut. Es wird

Mehr

JDroidLib mit Eclipse (Mac/Linux/Windows)

JDroidLib mit Eclipse (Mac/Linux/Windows) JDroidLib mit Eclipse (Mac/Linux/Windows) Version 1.3, 25. März 2013 (Unter Windows besser die ADT-Bundle Version installieren, siehe entsprechende Anleitung) Vorbereitungen: 1. JDK SE neuste Version installieren,

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Anleitung zur Schnellinstallation TE100-P1U

Anleitung zur Schnellinstallation TE100-P1U Anleitung zur Schnellinstallation TE100-P1U V2 Table of Contents Deutsch 1 1. Bevor Sie anfangen 1 2. Installation 2 3. Konfiguration des Druckservers 3 4. Hinzufügen des Druckers zu Ihren PC-Einstellungen

Mehr