Einführung in die Computergraphik. Übersicht GUI. 1. Programmieraufgabe. Gui, Widgets & Events Einführung in C#

Ähnliche Dokumente
Gui & Widgets. GUI & Widgets, Events GUI? Als GUI (= Graphical User Interface ) bezeichnet man die

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt WS 2006/2007

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

Objektorientierte Programmierung Studiengang Medieninformatik

Inhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten

Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel

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

Vorkurs Informatik WiSe 16/17

2 Programmieren in Java I noch ohne Nachbearbeitung

~±] Inhalt. 1.1 Ähnlichkeiten zwischen C# und Java Unterschiede zwischen C# und Java Das.NET-Framework 4 1.

Erste Java-Programme (Scopes und Rekursion)

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Statische und Nichtstatische Methoden Properties/ Eigenschaften

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

Praktische Informatik 1

Implementieren von Klassen

RO-Tutorien 15 und 16

Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java

Objektorientierte Programmierung Studiengang Medieninformatik

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Kapitel 8: Grafische Benutzerschnittstellen

Ziele. Kapitel 8: Grafische Benutzerschnittstellen. AWT und Swing. Ziele (2)

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Einstieg in die Informatik mit Java

Grafische Benutzeroberflächen

Informatik II. Woche 15, Giuseppe Accaputo

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Einstieg in die Informatik mit Java

Benutzeroberflächen. Java Teil 4

Alexander Glasner Applications Engineer National Instruments Germany GmbH

Klausur Grundlagen der Programmierung

Vererbung und Polymorphie

Graphical User Interfaces

Objektorientierung. Marc Satkowski 20. November C# Kurs

C++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println("Hello World!

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Repetitorium Informatik (Java)

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Vorkurs Informatik WiSe 17/18

Probeklausur: Programmierung WS04/05

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Methoden (fortgeschritten) in C# - 1

Praktikum 1: Einführung, BMI Rechner

Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Programmiertechnik Erweiterungen in Java 5

Bachelorprüfung: Objektorientierte Softwareentwicklung

Übung Programmierung WS 2007/08 - Blatt 6

Kapitel 4: Klassen und Unterklassen

RO-Tutorien 17 und 18

Institut für Informatik

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker,

Vorlesung Objektorientierte Programmierung Klausur

Dr. Monika Meiler. Inhalt

Anweisungen zur Ablaufsteuerung

Theorie zu Übung 8 Implementierung in Java

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Welche Informatik-Kenntnisse bringen Sie mit?

7. Objektorientierung. Informatik II für Verkehrsingenieure

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

Allgemeines - Prinzipien

12 Abstrakte Klassen, finale Klassen und Interfaces

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

Grafische Benutzeroberflächen

Angewandte Mathematik und Programmierung

Ereignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein

Tag 8 Repetitorium Informatik (Java)

Grafische Benutzeroberflächen

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

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 1: Grundlagen

Javakurs für Anfänger

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Neue Features in C# 2.0

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.

Repetitorium Programmieren I + II

Einführung: Grafische Benutzeroberflächen. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22

Typsystem Plattform- und Sprachenunabhängigkeit in.net

1 Klassen anlegen und Objekte erzeugen

Einführung in C#.NET. 1 Übersicht. 2 Typen (Types) Dieser Artikel stammt aus dem Magazin von C++.de (

Informatik I (D-MAVT)

Schablonen für Klassen, Interfaces oder Methoden, die noch nicht festgelegte Datentypen verwenden

Informatik Zusammenfassung 12.2 #1

IT Basics 2 Handout u

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker,

Transkript:

1. Programmieraufgabe Gui, Widgets & Events Einführung in C# 09.04.2008 Übersicht Gui & Widgets Events Kurze Einführung in C# Programmieraufgabe 1 Graphische Datenverarbeitung, Institut für Informatik GUI Graphische Datenverarbeitung, Institut für Informatik 3 1

GUI? Als GUI (= Graphical User Interface ) bezeichnet man die grafische Benutzungsschnittstelle oder auch grafische Benutzungsoberfläche eines Programmes; sie ist der Teil einer Software, mit der ein (normaler) Benutzer interagiert. Graphische Datenverarbeitung, Institut für Informatik 4 Beispiele von GUIs verschiedene GUI Beispiele: MS Windows XP, Atari TOS 2.06, RedHat 8.0 + Gnome, Apple OS X 10.4.6; Quelle: http://toastytech.com/gui Graphische Datenverarbeitung, Institut für Informatik 5 GUI-Anforderungen Da die GUI das entscheidende Element der Mensch-Maschine Interaktion ist, werden an eine gute GUI Anforderung gestellt: Aufgabenangemessenheit Selbstbeschreibungsfähigkeit Steuerbarkeit Erwartungskonformität Fehlerrobustheit Individualisierbarkeit Lernförderlichkeit Diese Anforderungen wurden (u.a.) in Norm DIN EN ISO 9241 festgehalten. Graphische Datenverarbeitung, Institut für Informatik 6 2

Widget Toolkits & Events Graphische Datenverarbeitung, Institut für Informatik 7 Widget Toolkits? Sammlung von Klassen, Schnittstellen und Bibliotheken, die die Erstellung und Benutzung einer GUI vereinfachen Ein Widget ist eine grafische Komponente, wie z.b. Buttons Textfelder Dialoge... verschiedene Widget-Beispiele: Java Swing, Apple Cocoa, MS MFC Graphische Datenverarbeitung, Institut für Informatik 8 Widget Toolkits! Widgets erleichtern dem Programmierenden die Arbeit: Widgets sind... direkt durch Instanziierung einsetzbar.... mehr als optische Elemente - sie besitzen viele vorgegebene Methoden und Eigenschaften....durch Vererbung stark anpassbar. Ein einheitliches Aussehen erleichtert dem Benutzer dem Umgang mit GUIs. Graphische Datenverarbeitung, Institut für Informatik 9 3

Widgets im Einsatz { } Üblicherweise unterstützen objektorientierte Toolkits die ereignisgesteuerte Programmierung: In der Programmerstellungsphase werden bestimmten Ereignissen auszuführende Methoden zugewiesen. Zur Laufzeit wartet das Programm auf das Eintreten der Ereignisse um anschließend die zugewiesenen Methoden aufzurufen. System.out.println("Aktion!"); > Aktion! Graphische Datenverarbeitung, Institut für Informatik 10 Ereignisse im Detail Beim gezeigten Beispiel passiert intern (stark vereinfacht) folgendes: Der Button speichert Referenz auf die auszuführende Methode. Ab Programmstart überwacht das Toolkit die Maus: Klick? Check, welches Objekt getroffen wurde Aufruf der gespeicherten zugewiesenen Methode Das Überwachen des Toolkits geschieht häufig (oder sollte zumindest) in einem eigenem Thread. Graphische Datenverarbeitung, Institut für Informatik 11 Ereignisgesteuerte Programmierung Der Programmfluss wird durch den Ereignisse gesteuert Interaktionen (des Benutzers) lösen Ereignisse aus Maus Tastatur Gamepad/Joystick/... Nicht-Benutzer Ereignisse: Nachricht empfangen,... Ist die mit dem Ereignis verbundene Methode ausgeführt worden, wartet das Programm auf weitere Eingaben Das Programm ist so lange aktiv, bis der Benutzer es beendet Graphische Datenverarbeitung, Institut für Informatik 12 4

C# Graphische Datenverarbeitung, Institut für Informatik 13 Kurze Einführung in C# (C sharp) Prozedurale OOP-Sprache von Microsoft, VÖ in 2001 Aktuell: C# 3.0 seit 19.11.2007 Basis: C++; Java, Delphi & VB sowie andere Benötigt Runtime zur Ausführung: CLR Windows (MS) Mono Linux, BSD, OSX, (OpenSource) Direkte Unterstützung der.net Komponenten Mächtig durch viele vorgegebene Klassen Graphische Datenverarbeitung, Institut für Informatik Einige C# Features C# 1.0 Automatische Garbage Collection Direkter Speicherzugriff möglich (unsafe keyword) C# 2.0 Generic Types Partielle Klassen Iteratoren C# 3.0 Lambda-Ausdrücke (funkt. Programmierung) Language Integrated Query (LINQ) Graphische Datenverarbeitung, Institut für Informatik 5

Typen & Operatoren Wahrheitstyp: bool Zahlentypen: int, double, float, byte,... Texttypen: char: a, String: abc Operatoren: +, -, *, /, %; ++A, A++, --A, A-- +=, -=, *=, /=, %=;, &&, ==, <, >,? Graphische Datenverarbeitung, Institut für Informatik 16 Flow control int n = 0; if (n == 5) { } else { } for (int i = 0; i < n; i++) { } switch (n) { case 5: break; default: break; } und andere... Graphische Datenverarbeitung, Institut für Informatik 17 Klasse & Funktion public class Vec1 { private double x; public Vec1() { x = 1;} public double GetX() { return x;} } public void Print() { System.Console.WriteLine( x= + x);} Graphische Datenverarbeitung, Institut für Informatik 18 6

Verschiedene Beispiele Iterator/Generics Collection<String> txts = new Collection<String>(); for (int i=0; i<23; i++) txts.add(i.tostring()); foreach (String txt in txts) System.Console.WriteLine(txt); Graphische Datenverarbeitung, Institut für Informatik Verschiedene Beispiele - Property private Color color; public Color BackgroundColor { get { return color; } set { color = value; } } //Set/Get Zugriff auf Variable Objekt.BackgroundColor = Color.Black; Color col = Objekt.BackgroundColor; Graphische Datenverarbeitung, Institut für Informatik IDE IDE erleichtern dem Programmierenden das Arbeiten z.b. durch: Syntaxhighlighting Verschiedene Übersichten (Variablen, Methoden,...) Eingabehilfen (Autocomplete,...) Projekterstellungstools und andere Werkzeuge Für C# gibt es zur Zeit folgende IDEs: Microsoft VisualStudio (ExpressEdition kostenlos), Windows SharpDevelop (OpenSource), Windows MonoDevelop (OpenSource), Linux & OS X Graphische Datenverarbeitung, Institut für Informatik 21 7

Ein kleines Beispiel Graphische Datenverarbeitung, Institut für Informatik 22 Programm Ziel Erweitertes Hello World Programm: Frei wählbarer Text wählbare Anzahl der Wiederholungen Graphische Datenverarbeitung, Institut für Informatik 23 Schritt 1 - Neues Projekt anlegen Graphische Datenverarbeitung, Institut für Informatik 24 8

Graphische Datenverarbeitung, Institut für Informatik 25 Schritt 2 - Widgets platzieren Widgettypen Label NumericUpDown TextBox Button RichTextBox Graphische Datenverarbeitung, Institut für Informatik 26 Schritt 3 - Widgets konfigurieren Sinnvolle Benennung: Typ + Funktion numwiederholungen tbtext rtbausgabe Startwerte angeben! jetzt mit Doppelclick auf den Button den Quellcode Editor für das Ereignis aufrufen Graphische Datenverarbeitung, Institut für Informatik 27 9

Graphische Datenverarbeitung, Institut für Informatik 28 Schritt 4 - Quellcode Jetzt das Programm starten: Graphische Datenverarbeitung, Institut für Informatik 29 Ausführen! Graphische Datenverarbeitung, Institut für Informatik 30 10

Programmieraufgabe #1 9.4.2008-24.4.2008 Graphische Datenverarbeitung, Institut für Informatik 31 Vektorrechner Eingabe von zwei 2D-Vektoren Verschiedene Operationen: Addition, Subtraktion Länge, Normalisieren Skalieren Kreuzprodukt(!), Skalarprodukt Graphische Visualisierung der Vektoren und Ergebnisse Textuelle Ausgabe der Rechnung Graphische Datenverarbeitung, Institut für Informatik 32 GUI Vorschlag Graphische Datenverarbeitung, Institut für Informatik 33 11

Anforderungen Klasse Vec2, die den Vektor repräsentiert Properties für X und Y, beide double Mehrere Konstruktoren (0, 1, 2 Parameter) Operationen +, -, Skalar* per Operatorenüberladung Ausgabe des Vektors mit überschriebener ToString() Methode Graphische Ausgabe in PictureBox mit Resize-Event Zwischenspeicherung der Vektoren in Collection Automatisch korrekte Skalierung! Textuelle Ausgabe in RichTextBox Fehlercheck mit Try...catch bei Konvertierung von String - double Sinnvolle Benennung, dokumentierter Code! Graphische Datenverarbeitung, Institut für Informatik 34 Vielen Dank:) Graphische Datenverarbeitung, Institut für Informatik 35 12