Programmieren mobiler Geräte

Größe: px
Ab Seite anzeigen:

Download "Programmieren mobiler Geräte"

Transkript

1 Datum Technologie Entwicklung Werkzeug Übung Grundlagen Überblick Ant Kompilieren WLAN, BT Eclipse Projektverwaltung GSM Eclipse Debugging WAP, WML, WMLS XML Nokia Toolkit WML, WMLS WAP, SMS, MMS XML JAVA mobil Einführung J2ME J2ME Toolkit Erste Schritte MIDP 1.0 GUI POSE Grafik JSR RMS+IO RMS MIDP 2.0 Media+Game Vernetzte Systeme Grundlagen Netzwerke Tomcat Servlet Projektvergabe SMS, MMS Kannel SMS Service Cocoon Präsentationen 1

2 Graphical User Interface High-level API Portability, high Abstraction, little Control keine genaue Definition des Erscheinungsbildes Low Level expliziter Zugriff auf alle Tasten, alle Pixel Verlust der automatischen Portabilität Portabilität muss anders gewährleistet werden eigene Version für jede Natel-Klasse Verwenden abstrahierter Tastenbelegung und Bldschirmgrössenabfrage Abfangen von Spezialfällen (Palm ohne Tastatur etc) Event Handling CommandListener andere Listener 2

3 high-level UI API Portability, high Abstraction, little Control keine Definition des Erscheinungsbildes Enthält grafische Komponenten, die je nach Endgerät ganz verschieden aussehen können. Navigation, Scrolling etc werden gekapselt, d.h. man braucht sich bei der Applikations-Entwicklung nicht damit zu befassen Die Gauge Komponente auf verschiedenen Geräten 3

4 low-level UI API Wenig Abstraktion Prezise Plazierung von graphischen Elementen Eingabe über spezifische Tasten / Stylus z.b. wichtig für Spiele Wichtige Klassen : Canvas and Graphics. Nicht apriori portabel es ist möglich Pixel und Tasten einzeln anzusteuern Portabel nur wenn beschränkt auf device-unabhängige Eigenschaften keine konkrete Tasten-Belegung, sondern GameCanvas verwenden keine impliziten Bedingungen an Bildschirmgrösse (ev. Abfrage) 4

5 Klassen-Hierarchie Displayable Objekt Kapselt geräte-abhängiges Rendering nur ein Displayable gleichzeitig sichtbar optional : Title, Ticker, Commands Screen Objekte high-level GUI Gewährleistet Rendering, Interaktion, Scrolling, etc 3 Unterarten von Screen Komplexe UI Komponenten : List, TextBox, etc Generische Screens: Form Objekt mit Item Objekten Text, Image, etc Unterklassen von Canvas (low-level API) Display Klasse ist der Display Manager wird von jedem MIDlet instanziert und kennt Bildschirm-Eigenschaften Display.setCurreent(myDisplayable); 5

6 MIDP UI Class Diagram 6

7 high-level Commands & Actions public class mymidlet extends Midlet implements CommandListener.. static final Command backcommand = new Command( Back, Command.BACK, 1);.. public mymidlet() display = Display.getDisplay(this); public void startapp() myscreen = new List( meine Liste, Choice.IMPLICIT) myscreen.addcommand(backcommand); Display.setCurrent(myScreen);.. void commandaction(command c, Displayable d); String label = c.getlabel(); if (label.equals( Back )) Display.setCurrent(myScreen);... 7

8 high-level Screen Klassen Vordefinierte List TextBox Alert Konfigurierbare Form kann Items enthalten TextFields ChoicGroup Gauge ImageItem StringItem CustomItem exclusive 8

9 Events Listener für Items in einem Form Interface ItemStateListener analog zum CommandListener void itemstatechanged(item item); wacht über Änderungen in Gauge, ChoiceGroup, TextField 9

10 low-level Events Ereignisse für ITU-T keypad (0-9, *, #) public void keypressed(int keycode); public void keyreleased(int keycode); public void keyrepeated(int keycode); public static boolean hasrepeatevents() Canvas hat abstrahierte Tastenbelegung: UP, DOWN,LEFT, RIGHT, FIRE, GAME_A, GAME_B, GAME_C, and GAME_D. weiteres dazu im Game API in 2 Wochen public void pointerpressed(int x, int y); public void pointerreleased(int x, int y); public void pointerdragged(int x, int y); 10

11 Bild darstellen : high-level private Form picform;... picform = new Form("Commands"); picform.append(gauge1); Image img = Image.createImage("/midp/uidemo/JavaPowered-8.png"); append(new ImageItem("Default Layout",img,ImageItem.LAYOUT_DEFAULT,"Image Cannot be shown")); einfach, wenig Einfluss auf Layout und Auffrischen 11

12 low-level Grafik Repainting ist für die Klasse Canvas nicht automatisch repaint() paint() zeichnet aktuellen Canvas-Inhalt Grafik Rendering direkt oder in off-line Buffer g = Image.getGraphics(); g.setcolor( red, green, blue); g.fillrect(0,0,12,12); (0,0) Koordinatensystem oben links (0,0) mycanvas.getheigth(); Events+Grafik : thread-safe 12

13 RGB Farben Rot-Grün-Blau Tripel von Werten Additive Farbmischung z.b. g.setcolor(255, 0, 0); ergibt ROT. FARBE Rot Grün Blau Weiss Schwarz Grau A A A Gelb Lila Türkis Gegensatz: CMYK, HSB 13

14 Graphics Klasse Die Klasse Graphics wird von der paint Methode bereitgestellt. public void paint(graphics g) g.setcolor(255,255,255); g.drawline(startx, starty, stopx, stopy); g.drawrect(obenlinksx, obenlinksy, untenrechtsx, untenrechtsy); g.drawstring(mystring, posx, posy, AnkerPunkt); Image img = Image.createImage( meinbild.png ); g.drawimage(img, posx, posy, AnkerPunkt); Sie ermöglicht die Bildbearbeitung: Zeichnen von primitiven Grafik-Typen (Linien, Ovale, Rechtecke, Bogen etc) Text Bilder 14

15 Bilder darstellen: ohne Buffer import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.util.*; public class Olympics extends MIDlet implements CommandListener private Command exitcommand; private Display display; private OlympicsCanvas screen; public Olympics() // Get the Display object for the MIDlet display = Display.getDisplay(this); // Create the Exit command exitcommand = new Command("Exit", Command.EXIT, 2); // Create the main screen form screen = new OlympicsCanvas(); // Set the Exit command screen.addcommand(exitcommand); screen.setcommandlistener(this); public void startapp() throws MIDletStateChangeException // Set the current display to the screen display.setcurrent(screen); midlet command graphics public void pauseapp() public void destroyapp(boolean unconditional) public void commandaction(command c, Displayable s) if (c == exitcommand) destroyapp(false); notifydestroyed(); class OlympicsCanvas extends Canvas public void paint(graphics g) // Draw the first row of circles g.setcolor(0, 0, 255); // Blue g.drawarc(5, 5, 25, 25, 0, 360); g.setcolor(0, 0, 0); // Black g.drawarc(35, 5, 25, 25, 0, 360); g.setcolor(255, 0, 0); // Red g.drawarc(65, 5, 25, 25, 0, 360); // Draw the second row of circles g.setcolor(255, 255, 0); // Yellow g.drawarc(20, 20, 25, 25, 0, 360); g.setcolor(0, 255, 0); // Green g.drawarc(50, 20, 25, 25, 0, 360); 15

16 Bild darstellen low-level mit Buffer public PartCanvas() Buffer Bild für Zwischenspeicherung buffer = Image.createImage(128, 128); update() Methode für kontrolliertes Auffrischen public void update() Source-Bild aus System.err.println(uri); JAR holen source = Image.createImage(uri); Graphics Objekt für g = buffer.getgraphics(); Bildbearbeitung g.drawimage(source, 0, heigth, g.top g.left); repaint(); Source-Bild in den Buffer Auffrischen / Neu-Malen protected void paint(graphics g) try g.drawimage(buffer, 0, 0, g.top g.left); g.setcolor(255, 0, 0); rot Buffer-Bild in die aktuelle Canvas kopieren g.drawstring(message, getwidth() / 2, 20, g.top g.hcenter); catch (Exception e) System.err.println(e + " : error in paint()"); message String 20 Pixel von oben zentriert einschreiben komplizierter, Kontrolle über Layout und Auffrischungen, Bildbearbeitung möglich 16

17 J2ME Over The Air Provisioning MIME Types anpassen ( z.b. in Apache/conf/httpd.conf ) # MIME type Extension application/java-archive text/vnd.sun.j2me.app-descriptor jar jad 17

18 Deployment aufs Mobil-Telefon Server-side Build Package Upload JAD+JAR to Server ev. WML-File mit Links erstellen Client-side im WAP-Browser URL-Link zu JAD eingeben oder Goto WML-Site URL-Links zu JAD Download / Info / Memory Status 18

19 Preferences 19

20 Memory Überwachung 20

21 Memory Loch Vector vec = new Vector(); for (int i = 0; i < nr; i++) vec.addelement(new Object()); 21

22 Profiler Name: java.io.reader.read Count: Anzahl Ausführung Cycles: Ausführungszeit %Cycles: % Anteil der Ausführungszeit Count With Children: Anzahl Ausführung mit Kindern %Count With Children: % Anteil der Ausführungszeit 22

23 Profiler 23

24 Profiler 24

25 CLDC Libraries: java.lang.* Boolean Byte Character Class Integer Long Math Object Runnable Runtime Short String StringBuffer System Thread Throwable 25

26 CLDC Libraries: java.util.* Calendar Date Enumeration Hashtable Random Stack TimeZone Vector 26

27 Package animated Timer Start Thread Objekt 27

28 Package animated Timer Start Support Objekt Display Objekte Thread Objekt 28

29 package animatedtimer; import javax.microedition.lcdui.*; import java.util.*; public class DisplayManager extends Stack private Display display; // Reference to Display object private Displayable maindisplayable; // Main displayable for MIDlet private Alert alstackerror; // Alert for error conditions /* * Display manager constructor * */ public DisplayManager(Display display, Displayable maindisplayable) // Only one display object per midlet, this is it this.display = display; Setzen der privaten Klassenvariablen this.maindisplayable = maindisplayable; // Create an alert displayed when an error occurs alstackerror = new Alert("Displayable Stack Error"); alstackerror.settimeout(alert.forever); // Modal 29

30 /* * Push the current displayable onto stack and set * the passed in displayable as active * */ public void pushdisplayable(displayable newdisplayable) push(display.getcurrent()); display.setcurrent(newdisplayable); Aktuellen Screen auf den Stack speichern, neuen Screen setzen /* * Return to the main displayable object of MIDlet * */ public void home() while (elementcount > 1) pop(); 1. Screen vom Stack holen display.setcurrent(maindisplayable); 30

31 /* * Pop displayable from stack and set as active * */ public void popdisplayable() // If the stack is not empty, pop next displayable if (empty() == false) display.setcurrent((displayable) pop()); else // On error show an alert // Once acknowledged, set 'maindisplayable' as active display.setcurrent(alstackerror, maindisplayable); Screen vom Stack holen 31

32 package animatedtimer; import javax.microedition.lcdui.*; class OptionsList extends List implements CommandListener private AnimatedTimer midlet; // Main midlet private Command cmback; public OptionsList(String title, int listtype, AnimatedTimer midlet) // Call list constructor super(title, listtype); Konstruktur von Mutter Objekt aufrufen // Save reference to MIDlet so we can // access the display manager class this.midlet = midlet; Referenz auf AnimatedTimer Objekt // Create the list entries in Klassenvariable speichern. append("sleep interval", null); append("start", null); Listeneinträge vorbereiten append("stop", null); // Create command and listen for events cmback = new Command("Back", Command.BACK, 1); addcommand(cmback); Zurück Kommando hinzufügen setcommandlistener(this); 32

33 public void commandaction(command c, Displayable s) if (c == List.SELECT_COMMAND) switch (getselectedindex()) case 0: // Push current displayable and show the form to adjust the timer sleep midlet.displaymgr.pushdisplayable(midlet.fmsleep); break; case 1: midlet.cvtimer.starttimer(); // Start timer and return to previous displayable midlet.displaymgr.popdisplayable(); break; case 2: midlet.cvtimer.stoptimer(); // Stop timer and return to previous displayable midlet.displaymgr.popdisplayable(); break; else if (c == cmback) midlet.displaymgr.popdisplayable(); // Return to previous displayable 33

34 package animatedtimer; import javax.microedition.lcdui.*; public class SleepForm extends Form implements CommandListener private AnimatedTimer midlet; // Main midlet private Command cmback, // Back to options list cmhome, // Go to main displayable (canvas) cmsave; // Save new sleep time private Gauge gasleep; // Gauge to adjust sleep public SleepForm(String title, AnimatedTimer midlet) // Call the form constructor super(title); // Save reference to MIDlet so we can // access the display manager class this.midlet = midlet; // Commands cmsave = new Command("Save", Command.SCREEN, 1); cmback = new Command("Back", Command.BACK, 2); cmhome = new Command("Home", Command.SCREEN, 2); 34

35 (Titel, interaktiv, Max, Start) // Gauge to adjust the length of timer sleep gasleep = new Gauge("Timer Sleep", true, 100, 1000); // Set to current sleep. Gauge holds values 0 to 100, // divide the current sleep (milliseconds) by 10 gasleep.setvalue(midlet.cvtimer.getsleep() / 10); // Add to form and listen for events append(gasleep); addcommand(cmsave); addcommand(cmback); addcommand(cmhome); setcommandlistener(this); Zugriff auf getsleep Methode via Klassenvariable cvtimer von der Hauptklasse 35

36 /* Command event handling --*/ public void commandaction(command c, Displayable s) if (c == cmsave) // Gauge returns a value between 0 and 100 // We want milliseconds, so multiply by 10 midlet.cvtimer.setsleep(gasleep.getvalue() * 10); // Return to main midlet midlet.displaymgr.home(); else if (c == cmback) // Pop the last displayable off the stack midlet.displaymgr.popdisplayable(); else if (c == cmhome) // Return to main midlet midlet.displaymgr.home(); 36

37 package animatedtimer; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class AnimatedTimer extends MIDlet private Display display; // The display protected TimerCanvas cvtimer; // Canvas to display timer protected OptionsList lsoptions; // List to change timer options protected SleepForm fmsleep; // Form with gauge to set timer sleep protected DisplayManager displaymgr; // Class to help manage screens public AnimatedTimer() display = Display.getDisplay(this); cvtimer = new TimerCanvas(this); lsoptions = new OptionsList("Timer options", List.IMPLICIT, this); fmsleep = new SleepForm("Adjust sleep", this); // Create a display manager object displaymgr = new DisplayManager(display, cvtimer); Referenz auf die Mutterklasse 37

38 protected void startapp() // Start with the canvas display.setcurrent(cvtimer); protected void pauseapp() protected void destroyapp( boolean unconditional ) public void exitmidlet() destroyapp(true); notifydestroyed(); 38

39 package animatedtimer; import javax.microedition.lcdui.*; public class TimerCanvas extends Canvas implements Runnable, CommandListener private AnimatedTimer midlet; // Main midlet private Command cmexit; // Exit midlet Thread Interface private Command cmoptions; // Display options list private Image im = null; // Sequence of images private int imagecount = 4; // Four images in the sequence private int imagewidth; // Width of one image in the sequence private int imageheight; // Height of one image in the sequence private int imageindex; // Current image in the sequence private int translate_x; // Translated x and y private int translate_y; private int viewport_x; // Location of the viewport private int viewport_y; private boolean active = false; // Timer active? private boolean requestedtostop = false; // Did user request to stop timer private int sleeptime = 400; // Current sleep time (milliseconds) 39

40 public TimerCanvas(AnimatedTimer midlet) // Call canvas constructor super(); // Save reference to MIDlet so we can // access the display manager class this.midlet = midlet; // Create commands & listen for events cmexit = new Command("Exit", Command.EXIT, 1); cmoptions = new Command("Config", Command.SCREEN, 2); addcommand(cmexit); addcommand(cmoptions); setcommandlistener(this); 40

41 /* * Application manager is about to display canvas * */ protected void shownotify() if (im == null) Nur einmal Bild laden! try // Read the png from a file and get width and height of one image im = Image.createImage("/timer.png"); imageheight = im.getheight(); imagewidth = im.getwidth() / imagecount; // Get the coordinates for x/y of viewport, Viewport is centered viewport_x = (getwidth() / 2 ) - (imagewidth / 2); viewport_y = (getheight() / 2 ) - (imageheight / 2); // Set first translated coordinate to match viewport translate_x = viewport_x; translate_y = viewport_y; catch (Exception e) System.err.println("Unable to read png file."); 41

42 getwidth() viewport_x = (getwidth() / 2 ) - (imagewidth / 2); viewport_y = (getheight() / 2 ) - (imageheight / 2); im.getwidth() / imagecount 42

43 // Begin with the first image in the sequence imageindex = 0; // If the user has not requested to stop the timer... if (!requestedtostop) active = true; Bild wird angezeigt new Thread(this).start(); Start Methode dieses Threads ausführen. /* * Application manager is no longer displaying canvas * */ protected void hidenotify() active = false; Bild soll nicht mehr angezeigt werden. 43

44 TimerCanvas.java /* * Draw next timer in sequence * */ protected void paint(graphics g) if (im!= null) // Due to a bug in MIDP we need to // force a clear of the display g.setcolor(255, 255, 255); // White pen g.fillrect(0, 0, getwidth(), getheight()); g.setcolor(0, 0, 0); // Black pen // Viewport at center of display g.setclip(viewport_x, viewport_y, imagewidth, imageheight); Clip // Draw image at translated coordinates g.drawimage(im, translate_x, translate_y, Graphics.TOP Graphics.LEFT); 44

45 /* Loop forever, translating image coordinates ----*/ public void run() try while (active) Bild aktiv? Thread.sleep(sleepTime); repaint(); Bild zeichnen if (imageindex == imagecount - 1) // Reached the last image in sequence translate_x = viewport_x; // Reset translated coordinates translate_y = viewport_y; else translate_x -= imagewidth; // Translate coordinate system to the left // Which image in the sequence is next imageindex = (imageindex + 1) % imagecount; catch (InterruptedException e) 45

46 /* * Called from the "Config" options menu * */ public void starttimer() requestedtostop = false; active = true; repaint(); /* * Called from the "Config" options menu * */ public void stoptimer() requestedtostop = true; active = false; repaint(); 46

47 /* * Called from form/gauge to adjust sleep */ public void setsleep(int sleeptime) this.sleeptime = sleeptime; public int getsleep() return sleeptime; public void commandaction(command c, Displayable s) if (c == cmoptions) // Push current displayable and show the options list midlet.displaymgr.pushdisplayable(midlet.lsoptions); else if (c == cmexit) midlet.exitmidlet(); Departement Informatik 47

Graphische Benutzungsoberflächen

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

Mehr

Einführung in die Programmierung

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

Mehr

Mobile Computing. J2ME - Mobile Media API. Ablauf. 1. Anwendungsbereich. 1. Multimedia-Prozesse. 1. Eigenschaften der MMAPI

Mobile Computing. J2ME - Mobile Media API. Ablauf. 1. Anwendungsbereich. 1. Multimedia-Prozesse. 1. Eigenschaften der MMAPI Mobile Computing Mobile Media API Ein Einblick in die Multimedia- Programmierung von Pocket-Devices Ablauf 1. Überblick über J2ME und die MMAPI 2. Klassen und Interfaces 3. Abspielen 4. Aufnehmen 5. MIDlet

Mehr

Selbststudium OOP4 Auftrag

Selbststudium OOP4 Auftrag Selbststudium OOP4 Auftrag Kapitel 3.6 1. Wie deklarieren Sie eine Referenzvariable? Mit new z.b. Student studenta = new Stundent( Meier ); 2. Zeichnen Sie das Objektdiagramm zum BlueJ Picture Projekt

Mehr

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

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

Mehr

Musterlösungen zur Klausur Informatik 3

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

Mehr

Javakurs zu Informatik I. Henning Heitkötter

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

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1 Ziele

Mehr

Java-Kurs: J2ME Programmierung von Embedded Devices mit der Java 2 Plattform, Micro Edition

Java-Kurs: J2ME Programmierung von Embedded Devices mit der Java 2 Plattform, Micro Edition Java-Kurs: J2ME Programmierung von Embedded Devices mit der Java 2 Plattform, Micro Edition David Vogler david.vogler@stz-softwaretechnik.de Steinbeis-Transferzentrum Softwaretechnik j2mekurs.tex Java-Kurs:

Mehr

Verteilte Anwendungen Java 2 Mobile Edition

Verteilte Anwendungen Java 2 Mobile Edition Verteilte Anwendungen Java 2 Mobile Edition Robert Eigner 29.06.2006 Gliederung Organisatorisches Einführung J2ME Geschichte Das Java Universum J2ME Basics J2ME: CLDC/MIDP Midlets Anwendungsentwicklung

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

GUI Programmierung in Java

GUI Programmierung in Java vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf

Mehr

Factory Method (Virtual Constructor)

Factory Method (Virtual Constructor) Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte

Mehr

Bilder. 2D Spiele programmieren in Java. Alpha channel. Formate. Optimierung. Empfehlung

Bilder. 2D Spiele programmieren in Java. Alpha channel. Formate. Optimierung. Empfehlung 2D Spiele programmieren in Java Teil 3: Bilder, Animationen Dr. Katja Wegner Dr. Ursula Rost Bilder Sind vielfach in Spielen einsetzbar (Menüs, Hintergrund, Objekte) Eigenschaften: Typ (e.g. bitmap, vector)

Mehr

Programmieren mobiler Geräte

Programmieren mobiler Geräte Datum Technologie Entwicklung Werkzeug Übung Grundlagen 23.10.30 1 Überblick Ant Kompilieren 30.10.03 2 WLAN, BT Eclipse Projektverwaltung 06.11.03 3 GSM Eclipse Debugging 13.11.03 4 WAP, WML, WMLS XML

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring?

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring? oliver@code-project.org 7. Februar 2006 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

Java-Programmierung. Remote Method Invocation - RMI

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

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Große Übung Praktische Informatik 1

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

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

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

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

Mehr

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

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

Mehr

Browserbasiertes, kollaboratives Whiteboard

Browserbasiertes, kollaboratives Whiteboard WS 2011/12 Bachelorarbeit Browserbasiertes, kollaboratives Whiteboard Sebastian Dorn 1 von 21 Inhalt 1. Motivation 2. Analyse 3. Design 4. Evaluation 5. Fazit Inhalt 2 von 21 Motivation Zusammenarbeit

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Programmierung mobiler Kleingeräte

Programmierung mobiler Kleingeräte Programmierung mobiler Kleingeräte Einführung in J2ME Wolfgang Auer, Patrick Ritschel Java 2 Plattformen Quelle: Sun, Datasheet Java 2 Platform, Micro Edition Programmierung mobiler Kleingeräte, Einführung

Mehr

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler

Mehr

1. Laboraufgabe. Grafische Nutzerschnittstellen. Studiengang I / IEA / SAT

1. Laboraufgabe. Grafische Nutzerschnittstellen. Studiengang I / IEA / SAT 1. Laboraufgabe Grafische Nutzerschnittstellen Studiengang I / IEA / SAT FB Automatisierung und Informatik: Grafische Nutzerschnittstellen 1 1. Laboraufgabe: Die Aufgabe lautet, ein Javaprogramm zu schreiben,

Mehr

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog. Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02 Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02 Prof. Dr.-Ing. Holger Vogelsang (FH-Karlsruhe) Dipl.-Inform. (FH) Gudrun Keller (FH-Karlsruhe) Dipl.-Inform. Mathias Supp (.riess

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:

Mehr

Übersicht. Wo lebt die Schildkröte? Wie programmiert man die Schildkröte? Wo lebt die Schildkröte? Wie programmiert man die Schildkröte?

Übersicht. Wo lebt die Schildkröte? Wie programmiert man die Schildkröte? Wo lebt die Schildkröte? Wie programmiert man die Schildkröte? Übersicht Wo lebt die Schildkröte? Wie programmiert man die Schildkröte? Schildkröten-Befehle Aufgaben Wo lebt die Schildkröte? Auf dem Bildschirm! Beispiel: Wie programmiert man die Schildkröte? Mit Schildkröten-Befehlen,

Mehr

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0 Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben

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

Typumwandlungen bei Referenztypen

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

Mehr

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

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

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

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Algorithmen und Datenstrukturen

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

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Schritt 1 - Ein Spielfeld

Schritt 1 - Ein Spielfeld Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier

Mehr

versus Christian Grobmeier http://www.grobmeier.de @grobmeier

versus Christian Grobmeier http://www.grobmeier.de @grobmeier versus Christian Grobmeier http://www.grobmeier.de @grobmeier Programmiersprache von Google Kann JS ersetzen Läuft in einer VM Für ernsthafte Anwendungen Jung und rockt Heavy Metal Band aus England Ersetzt

Mehr

Einführung in Javadoc

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

Mehr

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6) Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6) 1. Loggen Sie sich im Administratorbereich ein und gehen Sie auf Extension > Extension Manager 2. Wählen Sie Install languages 3. Klicken Sie

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Softwareupdate-Anleitung // AC Porty L Netzteileinschub

Softwareupdate-Anleitung // AC Porty L Netzteileinschub 1 Softwareupdate-Anleitung // AC Porty L Netzteileinschub Softwareupdate-Anleitung // AC Porty L Netzteileinschub HENSEL-VISIT GmbH & Co. KG Robert-Bunsen-Str. 3 D-97076 Würzburg-Lengfeld GERMANY Tel./Phone:

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Folge 18 - Vererbung

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

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

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

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

Mehr

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

n ookiao Informatikseminar Inhalt J2ME Java 2 Platform, Micro Edition Mit Focus auf Geräte mit CLDC-Configuration und MIDP2-Profil

n ookiao Informatikseminar Inhalt J2ME Java 2 Platform, Micro Edition Mit Focus auf Geräte mit CLDC-Configuration und MIDP2-Profil Informatikseminar J2ME Java 2 Platform, Micro Edition Mit Focus auf Geräte mit CLDC-Configuration und MIDP2-Profil Jochen Rink, 30.05.2005 1 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen

Mehr

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Abschnitt 12: Strukturierung von Java-Programmen: Packages Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung

Mehr

GUI Programmierung mit JAVA Swing

GUI Programmierung mit JAVA Swing GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische

Mehr

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

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

Mehr

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung Grafikausgabe mit dem Abstract- Windowing-Toolkit Eine Einführung Inhalt Einführung Grundlegende Eigenschaften des Abstract-Windowing- Toolkit (AWT) Grundlagen Grafikausgabe Linien zeichnen Rechtecke zeichnen

Mehr

public class SternchenRechteckGefuellt {

public class SternchenRechteckGefuellt { Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und

Mehr

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:

Mehr

Sage 200 BI Häufige Fehler & Lösungen. Version 15.10.2014

Sage 200 BI Häufige Fehler & Lösungen. Version 15.10.2014 Sage 200 BI Häufige Fehler & Lösungen Version 15.10.2014 Inhaltverzeichnis Sage 200 BI Häufige Fehler & Lösungen Inhaltverzeichnis 2 1.0 Häufige Probleme & Lösungen 3 1.1 Keine Grafiken in SSRS-Auswertungen

Mehr

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

Mehr

Dezentrale Kontrolle: Aktive Objekte. Aktive Objekte Die Klasse AnimatorThread Aktivierung Objekte beobachten Die Java-Klasse Thread

Dezentrale Kontrolle: Aktive Objekte. Aktive Objekte Die Klasse AnimatorThread Aktivierung Objekte beobachten Die Java-Klasse Thread Dezentrale Kontrolle: Aktive Objekte Aktive Objekte Die Klasse AnimatorThread Aktivierung Objekte beobachten Die Java-Klasse Thread Passive Objekte Bieten Dienste auf Abruf an: - eine Zahl von der Konsole

Mehr

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Aufgabe 1: Pareto mit SV-Semantik Suchmaschinen Pareto Definition: x < P

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

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

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

Mehr

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

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

Mehr

Übersicht. Generierung von IPv6-Paketen mit Scapy. Scapy GUI - Kurzvorstellung. Szameitpreiks - Beuth Hochschule für Technik Berlin

Übersicht. Generierung von IPv6-Paketen mit Scapy. Scapy GUI - Kurzvorstellung. Szameitpreiks - Beuth Hochschule für Technik Berlin Übersicht Generierung von IPv6-Paketen mit Scapy Scapy GUI - Kurzvorstellung Szameitpreiks - Beuth Hochschule für Technik Berlin 2 Scapy-GUI for IPv6 Generierung von IPv6- Paketen mit Scapy Szameitpreiks

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

Dokumentation des Projektes Tic Tac Toe

Dokumentation des Projektes Tic Tac Toe Praktikum aus Programmierung Dr. Michael Hahsler Dokumentation des Projektes Tic Tac Toe 0050230 1 Java Projekt: Tic Tac Toe 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis... 2 2. Problemdefinition... 2 3.

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

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace. Starten Sie Eclipse: Abgesehen vom Kommandozeilenfenster, auf welches wir später eingehen, öffnet sich ein Dialog (in der FH vermutlich nicht, überspringen Sie in diesem Fall): Hier tragen sie Ihr Arbeitsverzeichnis

Mehr

Java Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation

Java Tools JDK. IDEs.  Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/

Mehr

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck 28.05.2003

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck 28.05.2003 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS Universität zu Lübeck 28.05.2003 Nullwerte und Primitive Typen Wenn parent==null, was wird in der Datenbank gespeichert? Wenn man aus der DB liest, wie kann

Mehr

8 Zugriffstypen ( Zeiger )

8 Zugriffstypen ( Zeiger ) 8 Zugriffstypen ( Zeiger ) 1. Zugriffstypen, die auf Daten in einem Storage Pool zeigen Heap. 2. Allgemeine Zugriffstypen, die auf (mehr oder weniger) beliebige Daten zeigen. 3. Zugriffsparameter für Unterprogramme

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Lösung zu Praktikum 1 -Programmierung eines Java Card Applets-

Lösung zu Praktikum 1 -Programmierung eines Java Card Applets- Lösung zu Praktikum 1 -Programmierung eines Java Card Applets- Björn Wontora, Holger Plett, Christian Linke, Karsten Reineck, Sven Siek, Andreas Kupfer Phasen beim Cardlet Entwurf 1. Funktionen des Applets

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Funktionale und Objekt-Orientierte Programmierkonzepte

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

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

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

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung 1. "Hai!" [Konsolenanwendung] Console.WriteLine("Hai, wie geht's?"); 2. Muktiplikation mit sich selbst [Konsolenanwendung] // Ausgabe

Mehr

Multi-Threading. Ralf Abramowitsch Vector Informatik GmbH abramowitsch@lehre.dhbw-stuttgart.de

Multi-Threading. Ralf Abramowitsch Vector Informatik GmbH abramowitsch@lehre.dhbw-stuttgart.de Multi-Threading Ralf Abramowitsch Vector Informatik GmbH abramowitsch@lehre.dhbw-stuttgart.de Einführung in Threads Threads synchronisieren ThreadPools Thread = unabhängiger Ausführungspfad, der gleichzeitig

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Java Wireless Toolkit (JWT) Bei der Programmierung von Anwendungsprogrammen für mobile Endgeräte eignet sich die Verwendung des Java Wireless Toolkit.

Java Wireless Toolkit (JWT) Bei der Programmierung von Anwendungsprogrammen für mobile Endgeräte eignet sich die Verwendung des Java Wireless Toolkit. 1 Seminar zum Programmierprojekt Arbeitsbereich Technische Informatik Ausgabe: 30. April 2008 Anleitung B3 Einführung in die Entwicklungsumgebungen Allgemeines In dieser Aufgabe lernen wir die Entwicklungsumgebungen

Mehr

Sepiola Mockups. Overview. Show notes. Primäre Navigation anklicken um zum gewünschten Mockups zu gehen. Backup usage. Overview.

Sepiola Mockups. Overview. Show notes. Primäre Navigation anklicken um zum gewünschten Mockups zu gehen. Backup usage. Overview. Show notes usage Incremental s Free 35% 30% 35% 711 MB 598 MB 739 MB Quota: 2 GB change quota under Settings schedule Last s Successfull Tuesday, 19.3.09 12:16 Successfull Wednesday, 19.3.09 12:25 Successfull

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr