CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Größe: px
Ab Seite anzeigen:

Download "CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)"

Transkript

1 CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Graphische Benutzerschnittstellen II GUI und Aktionen verknüpfen MVC-Muster Seite 1

2 GUI mit Aktionen verknüpfen Seite 2

3 ActionListener ActionListener : GUI-Komponenten mit Anwendungslogik verbinden Ereignis: Benutzer drückt Taste / bewegt Maus GUI-Elemente registrieren diese externen Ereignisse... erzeugen interne Ereignisse... und leiten sie weiter an ihre ActionListener ActionListener verarbeitet interne Ereignisse KLICK internes Ereignis externes Ereignis ActionListener: passt auf, ob irgendwo sich etwas regt EreignisObjekt ActionListener ActionListener Klick verarbeiten Klick verarbeiten einlistener JButton JButton einknopf Verbindung herstellen einknopf.addactionlistener(einlistener) Seite 3

4 ActionListener: Beispiel public static void main(string[] args) { JFrame frame = new JFrame(); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setlayout(new FlowLayout()); JButton b = new JButton("KlickMich!"); frame.add(b); //Knopf mit ActionListener verbinden b.addactionlistener(new OhEsKlickt()); Knopf b mit einem ActionListener verbinden frame.setvisible(true); namenloses OhEsKlickt-Objekt new Der ActionListener definiert was passiert, wenn der Knopf geklickt wird namenloses ActionListener-Objekt class OhEsKlickt implements ActionListener { public void actionperformed(actionevent arg0) { System.out.println("Oh Ja, das Klickt!"); Seite 4

5 ActionListener: Darstellung mit Sequenzdiagramm :OhEsKlickt public class Test { public static void main(string[] args) {... b : JButton addactionlistener( ) actionperformed main-thread Klick! Event-Dispatcher-Thread addactionlistener: Von main aus (direkt oder indirekt über beliebig viele Methodenaufrufe) wird das namenlose Objekt der Klasse OhEsKlickt als ActionListener beim Objekt b regisitriert. Klickt dann irgendwann der Benutzer den Knopf b... dann wird dies vom Event-Dispatcher-Thread bemerkt, und er aktiviert den bei b registrierten ActionListener... genau genommen ruft er dessen Methode actionperformed auf Seite 5

6 ActionListener als anonyme innere Klasse public static void main(string[] args) { JFrame frame = new JFrame(); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setlayout(new FlowLayout()); JButton b = new JButton("KlickMich!"); JLabel l = new JLabel(); frame.add(b); frame.add(l); Anonyme innere Klasse: Abgekürzte Notation. Spart eine extra Klassendefinition. Eigentlich will man ja nur eine Aktion (Methode) mit dem Knopf verbinden. Formal muss dazu aber eine Klasse (mit dieser Methode) definiert werden. // ActionListener: Klassendfinition und Instanzerzeugung // in einem b.addactionlistener( new ActionListener(){ public void actionperformed(actionevent arg0) { System.out.println("Oh Ja, das klickt"); ); frame.setvisible(true); Methodendefinition Definition einer anonymen inneren Klasse (Klasse ohne Namen, in einer Methode definiert) Seite 6

7 explizit definierte / anonyme innere Klasse Äquivalente Varianten: explizit (normal) definierte Klasse oder anonyme innere Klasse public static void main(string[] args) { JFrame frame = new JFrame(); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setlayout(new FlowLayout()); JButton b = new JButton("KlickMich!"); frame.add(b); b.addactionlistener( new ActionListener(){ public void actionperformed(actionevent arg0) { System.out.println("Oh Ja, das klickt"); public static void main(string[] args) { JFrame frame = new JFrame(); ); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setvisible(true); frame.setlayout(new FlowLayout()); JButton b = new JButton("KlickMich!"); frame.add(b); //Knopf mit ActionListener verbinden b.addactionlistener(new OhEsKlickt()); Variante mit anonymer innerer Klasse frame.setvisible(true); class OhEsKlickt implements ActionListener { public void actionperformed(actionevent arg0) { System.out.println("Oh Ja, das Klickt!"); Seite 7 Variante mit explizit definierter Klasse

8 Kommunikation mit GUI-Elementen Seite 8

9 Textfelder: Werte setzen / abfragen Das Programm (der main-thread) kann in vielfältiger Weise auf GUI-Elemente zugreifen um Werte und Eigenschaften zu setzten (die dann eventuell sichtbar werden) um Werte und Eigenschaften zu lesen (die eventuell vom Benutzer eingegeben wurden) Beispiel Textfeld: settext: Text sichtbar machen gettext: Benutzereingaben lesen :ActionListener public class Test { public static void main(string[] args) {... t : JTextField addactionlistener( ) actionperformed Event-DispatcherThread Benutzer Aktion settext main-thread (Programm-gesteuerte Aktionen) gettext Seite 9

10 Ereignisorientierte Programme Interaktive Programme sind ereignisorientiert: sie werden im wesentlichen über den Event-Dispatcher gesteuert. Benutzeraktionen modifizieren GUI-Elemente und aktivieren ActionListener diese lesen Informationen aus (anderen) GUI-Elementen und modifizieren deren Inhalt und Aussehen :ActionListener b : JButton t : JTextField Event-DispatcherThread addactionlistener( ) KLICK actionperformed gettext Info verarbeiten, dann anzeigen Tipp settext Zeigen Seite 10

11 Ereignisorientierung: Auf Klick hin addieren public class AddiererGUI extends JFrame { private JButton plusb; private JTextField op1tf; private JTextField op2tf; private JTextField resulttf; public AddiererGUI() { super("addierer"); initview(); setlistener(); gettext parseint settext private void setlistener() { plusb.addactionlistener( new ActionListener() { public void actionperformed(actionevent arg0) { resulttf.settext( "" // String-Wert erzwingen + ( Integer.parseInt( op1tf.gettext() ) + Integer.parseInt( op2tf.gettext() ) ) gettext parseint + private void initview() {...wie oben ); ); Seite 11

12 View MVC: Model, View, Control Control Seite 12 Model

13 MVC: ein bekanntes Entwurfsmuster MVC: Entwurfsmuster (design pattern) zur Gestaltung von GUI-Anwendungen Model View Control Modell (Logik / Zustand) der Anwendung Darstellung des Modells, Interaktion mit dem Benutzer (GUI) Kontrolle, Benutzerführung, Aktionsverarbeitung Die GUI-Anwendung wird in die drei Bereiche organisiert, die jeweils eine der drei Hauptaufgaben übernehmen. Model, View und Control werden als Klassen mit einem Exemplar realisiert Seite 13

14 Addierer nach MVC-Muster Addierer im MVC-Muster: Model Eine Welt von drei Werte v1, v2, s. Die dritte (s) ist dabei immer die Summe der beiden anderen (v1, v2) View Darstellung des Modells, also der drei Zahlen. Außerdem Möglichkeit für Benutzeraktionen: der Knopf Control Kontrolle, Benutzerführung, Aktionsverarbeitung: Benutzer klickt Knopf. v1 und v2 im Model werden an die eingegebenen Werte angepasst. Control: steuert Reaktion auf Benutzeraktionen Control oder Berechnungen set(2,3) Model statt AddiererGUI update(''5'') Model:verwaltet / berechnet Daten; aktualisiert View Seite 14 action(''2'',''3'') View View: zeigt Modell, bemerkt Benutzeraktionen

15 Addierer nach MVC-Muster (1) public class AddiererModel { private int v1; private int v2; private int s; // INV s = v1+2 private AddiererView view; public AddiererModel(AddiererView view) { this.view = view; void set(int v1, int v2){ System.out.println("SET "+v1+ " "+v2); this.v1 = v1; this.v2 = v2; s = v1 + v2; set(2,3) view.update(s); Model update(''5'') Model muss View kennen. Die Bekanntschaft wird im Konstruktor gesetzt Seite 15

16 Addierer nach MVC-Muster (2) public class AddiererControl { private AddiererModel model; public AddiererControl(AddiererModel model) { this.model = model; void action(string s1, String s2){ model.set( Integer.parseInt(s1), Integer.parseInt(s2) ); Control action(''2'',''3'') set(2,3) Control muss Model kennen. Die Bekanntschaft wird im Konstruktor gesetzt Seite 16

17 Addierer nach MVC-Muster (3) public class AddiererView extends JFrame { private JButton plusb; private JTextField op1tf, op2tf, resulttf; private AddiererControl control; public AddiererView() { super("addierer"); initview(); setlistener(); void setcontrol(addierercontrol control){ this.control = control; private void initview() {... update(''5'') View View muss Conrol kennen. Die Bekanntschaft wird mit Methode gesetzt private void setlistener() { plusb.addactionlistener( new ActionListener() { public void actionperformed(actionevent arg0) { control.action( op1tf.gettext(), op2tf.gettext()); ); // Ende setlistener void update(int v){ resulttf.settext( ""+v ); Seite 17

18 Addierer nach MVC-Muster (4) public class Addierer { public static void main(final String[] args){ AddiererView addierview = new AddiererView(); AddiererModel model = new AddiererModel(addierView); AddiererControl control = new AddiererControl(model); addierview.setcontrol(control); addierview.setvisible(true); Control Hauptklasse Addierer: Komponenten erzeugen und miteinander verbinden (bekannt machen) Model View Die MVC-Struktur ist für dieses Trivial-Beispiel natürlich nicht notwendig. Bei komplexeren Anwendungen aber wichtiges, notwendiges und sehr hilfreiches Gestaltungselement. Seite 18

19 MVC MVC Kernidee: Trenne Anwendung, Dialogsteuerung und Präsentation Anwendung (Model): Daten, Zustand der Anwendung, Algorithmen Controller: Verbindung GUI Model, Reaktion auf Benutzeraktionen, Benutzerführung Fehlerhafte Eingaben abfangen,... GUI (View): Darstellung des Modells (Zustand der Anwendung), Aktionsmöglichkeiten bieten Seite 19

20 MVC MVC Beispiel Taschenrechner Seite 20

21 MVC MVC-Muster Taschenrechner Model Daten, Zustand der Anwendung, Algorithmen Control Verbindung GUI Model, Reaktion auf Benutzeraktionen, Benutzerführung View Darstellung des Modells (Zustand der Anwendung), Aktionsmöglichkeiten bieten. Seite 21

22 Taschenrechner: Main package rechner; public class Main { public static void main(string[] args) { Model model = new Model(); Control control = new Control(model); View view = new View(control); model.setcontrol(control); control.setview(view); view.setvisible(true); Bekanntschaften setzen: welches Objekt kennt welches andere: - control kennt model (via Konstruktor): lässt rechnen - view kennt control (via Konstruktor): lässt Eingaben verarbeiten - model kennt control (via setcontrol): breichtet über Rechnenwerte - control kennt view (via setview): zeigt Werte / Fehler an model control view Seite 22

23 Taschenrechner / GUI Taschenrechner GUI (View): sehr einfacher Rechner: Grundrechenarten auf ganzen Zahlen Layout: GridBagLayout Komponenten tabellenartig anordnen, mit Komponenten die sich über mehrere Zeilen / Spalten erstrecken. x y Seite 23

24 Taschenrechner / GUI GridBagLayout: Komponenten werden in einem Gitter / einer Tabelle platziert mit Angabe von: x-position (Spalte) y-position (Zeile) Höhe (in Zeilen) Weite (in Spalten) Positionsangaben als GridBagConstraints, die bei add mit angegeben werden setlayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); //Komponenten so breit wie ihr Platz: c.fill = GridBagConstraints.HORIZONTAL; c.gridwidth = 4; // Weite: 4 Spalten c.gridx = 0; // Spalte 0 c.gridy = 0; // Zeile 0 add(displaytf, c); // Textfeld dahin! c.gridwidth = 2; // Weite jetzt 2 c.gridx = 4; // x-position jetzt 4 add(new JLabel("SuperCalc", SwingConstants.CENTER), c); Die erste Zeile des Taschenrechners: 4 Spalten für Textfeld, 2 Spalten für Label Seite 24

25 Taschenrechner / GUI - Rahmen public class View extends JFrame { private JButton[] digitbutton = new JButton[10]; private JButton[] opbutton = new JButton[4]; private JButton eqbutton; private JButton clearbutton; private JTextField displaytf; char[] ops = { '+', '-', '*', '/' ; private Control control; View(Control control) { super("calculator"); this.control = control; initgui(); setlistener(); private void initgui() {... private void setlistener() {... Seite 25

26 Taschenrechner / GUI initgui (1) private void initgui() { for (int i = 0; i < 10; i++) { digitbutton[i] = new JButton("" + i); digitbutton[i].setfont(new Font("monspaced", Font.PLAIN, 20)); for (int i = 0; i < 4; i++) { opbutton[i] = new JButton("" + ops[i]); opbutton[i].setfont(new Font("monspaced", Font.PLAIN, 20)); eqbutton = new JButton("="); eqbutton.setfont(new Font("monspaced", Font.PLAIN, 20)); clearbutton = new JButton("clear"); clearbutton.setfont(new Font("spaced", Font.ITALIC, 12)); displaytf = new JFormattedTextField(new java.text.decimalformat()); displaytf.setcolumns(10); displaytf.sethorizontalalignment(jtextfield.right); displaytf.setfont(new Font("monspaced", Font.PLAIN, 20)); displaytf.seteditable(false); displaytf.setbackground(color.light_gray); Seite 26

27 Taschenrechner / GUI initview (2) setlayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.HORIZONTAL; c.gridwidth = 4; c.gridx = 0; c.gridy = 0; add(displaytf, c); c.gridwidth = 2; c.gridx = 4; add(new JLabel("SuperCalc", SwingConstants.CENTER), c); c.gridwidth = 1; c.gridx = 0; c.gridy = 1; add(digitbutton[7], c); c.gridx = 1; add(digitbutton[8], c); c.gridx = 2; add(digitbutton[9], c); c.gridx = 4; add(opbutton[0], c); c.gridx = 5; add(opbutton[1], c); Seite 27

28 Taschenrechner / GUI initview (3) c.gridx = 0; c.gridy = 2; add(digitbutton[4], c); c.gridx = 1; add(digitbutton[5], c); c.gridx = 2; add(digitbutton[6], c); c.gridx = 4; add(opbutton[2], c); c.gridx = 5; add(opbutton[3], c); c.gridx = 0; c.gridy = 3; add(digitbutton[1], c); c.gridx = 1; add(digitbutton[2], c); c.gridx = 2; add(digitbutton[3], c); c.gridx = 4; c.gridwidth = 2; add(eqbutton, c); c.gridwidth = 1; add(digitbutton[3], c); c.gridx = 4; c.gridwidth = 2; add(eqbutton, c); c.gridwidth = 1; c.gridx = 0; c.gridy = 4; c.gridwidth = 3; add(digitbutton[0], c); c.gridx = 4; add(clearbutton, c); Seite 28 pack();

29 Taschenrechner : Automat Taschenrechner als Automat Zwei Ebenen Ebne der Ziffern Ziffer-Eingaben / Operator-Eingaben verarbeiten Eingegebene Ziffern speichern und zu Zahlen zusammensetzen Ebene der Zahlen eingegebene / berechnete Zahlen für die nächste Operation speichern eingegebenen Operator / eingegebene Zahlen zu neuer Zahl verarbeiten 00 neue Ziffer zu der Zahl die gerade aufgesammelt wird ++ Ziffer-Sammeln beenden, Zahl merken, Operator merken == Ziffern sammeln beendet, Zahl mit alter Zahl und Operator verknüpfen Seite 29

30 Taschenrechner : Automat Aufteilung des Verhaltens in zwei parallel arbeitende Automaten: Tasten-Annahme / -Verarbeitung (Tastendruck-Verarbeitung / Ziffer ~> Zahl) Zahlen-Annahme / -Verarbeitung (Verarbeitung von Zahlen und Operationen) Ziffer +-*/ = Front Zahl, op baut Zahl auf in acc1 Zahl, = Ergebnis Zustand: gesammelte Ziffern Back verwaltet op, verwaltet acc2, rechnet Zustand: gespeicherte Zahl und Operator acc1: 1-ter Akkumulator, Sammelstelle für Ziffern acc2: 2-ter Akkumulator, Aufbewahrung des ersten Operanden op: aufbewahrter Operator Seite 30

31 Taschenrechner : Front-Automat Front-Automat Eingabeannahme Ziffernfolge zu Zahlen aufbauen < Zahl / Operator > oder < Zahl / = > an Back-Automat übergeben Back <123, +> acc1 Seite 31

32 Taschenrechner : Front-Automat als UML / Statechart =/ sendcomp(acc1) / acc1 = 0 receiveerg(v) / acc1 = v Input InputPending Ziffer / acc1 = acc1*10 + Ziffer Ziffer / acc1 = Ziffer Zustand op / sendop(acc1, op) Front-Automat: verwaltet Zahl (in acc1) sammelt Ziffern zu Zahlen auf nimmt Ergebnis an sendet <Zahl, => oder Operator UML: Zustands(übergangs)Automat, Zustands(übergangs)Diagramm Statechart Ereignis Aktion Ereignisse: - Ziffer : Eingabe einer Ziffer - op: Eingabe eines Operators - = : Eingabe '=' - receiveerg: Ergebnis von Back Zustände: bei Zahleingabe oder Beginn neue Zahl Seite 32

33 Taschenrechner : Front-Automat als UML / Statechart =/ sendcomp(acc1) / acc1 = 0 receiveerg(v) / acc1 = v Input InputPending Ziffer / acc1 = acc1*10 + Ziffer composite State Ziffer / acc1 = Ziffer Zustand op / sendop(acc1, op) Front-Automat startet im Zustand Input, acc1 wird = 0 gesetzt. Im Zustand Input: - ankommenden Ziffern werden gesammelt Im Zustand InputPending - ein eintreffender Wert v vom Back-Automat wird in acc1 gespeichert Ereignis Aktion in jedem Zustand: - eine '='-Eingabe führt in den Zustand InputPending und zum Senden des acc1-wertes - eine '+', '-', '**, oder '/' Eingabe führt in den Zustand InputPendimg und dazu, dass der Operator und der Wert von acc1 an den BackAutomat gesendet wird. Seite 33

34 Taschenrechner : MVC Front-Automat => Control-Komponente zusätzlich Clear-Taste Fehlereingaben abfangen Fehlermeldungen von Model annehmen View informieren Back-Automat => Model-Komponente zusätzlich reset-funktion Arithmetik-Fehler abfangen View / Control informieren Eine Aufteilung von beliebig vielen möglichen! Seite 34

35 Taschenrechner : Automat als Model und Control Aufteilung des Verhaltens in zwei parallel arbeitende Automaten: Control: Tasten-Annahme / -Verarbeitung (Tastendruck-Verarbeitung / Ziffer ~> Zahl) Model: Zahlen-Annahme / -Verarbeitung (Verarbeitung von Zahlen und Operationen) Control Ziffer +-*/ = baut Zahl auf in acc1 sendop receiveop sendcomp receivecomp sendreset receivereset receiveerg senderg Model verwaltet op, verwaltet acc2, rechnet Zustand: gespeicherte Zahl und Operator Zustand: gesammelte Ziffern acc1: 1-ter Akkumulator, Sammelstelle für Ziffern acc2: 2-ter Akkumulator, Aufbewahrung des ersten Operanden op: aufbewahrter Operator Seite 35

36 Taschenrechner : Control-Komponente / UML =/ sendcomp(acc1) / acc1 = 0 digitc = 0 Input Ziffer / [digitc < MAX] acc1 = acc1*10 + Ziffer digitc++ receiveerg(v) / acc1 = v clear / sendreset() InputPending Ziffer / acc1 = Ziffer digitc = 1 clear / sendreset() op / sendop(acc1, op) receiveerr Ziffer / [digitc >= MAX] Front (Control) mit Fehlerkontrolle: eingegebene Ziffern werden gezählt; clear führt zu Re-Initialisierung. Back (Model) kann Fehler melden; nur clear führt aus dem Fehler-Zustand Seite 36 Error

37 Taschenrechner : Control-Komponente / Java (1) public class Control { private enum State { INPUT, INPUTPENDING, ERROR ; private State state = State.INPUT; private long acc1 = 0; private int digitc = 0; private final int MAXDIGIT = 12; private Model model; private View view; public void setview(view view) { this.view = view; public Control(Model model) { this.model = model; Seite 37

38 Taschenrechner : Control-Komponente / Java (2) void setdigit(int d) { switch (state) { case INPUT: if ( digitc > MAXDIGIT ) { state = State.ERROR; view.newtext("error"); return; acc1 = acc1*10 + d; view.newtext(""+acc1); digitc++; state = State.INPUT; break; case INPUTPENDING: acc1 = d; view.newtext(""+acc1); Zifferneingabe verarbeiten: digitc = 1; in welchem Zustand bin ich state = State.INPUT; was tun? break; was ist der nächste Zustand? Seite 38

39 Taschenrechner : Control-Komponente / Java (3) void setequal() { switch (state) { case INPUT: state = State.INPUTPENDING; sendcomp(acc1); break; case INPUTPENDING: state = State.INPUTPENDING; sendcomp(acc1); break; '='-Eingabe verarbeiten Operator-Eingabe verarbeiten void setop(char op) { switch (state) { case INPUT: state = State.INPUTPENDING; sendop(acc1, op); break; case INPUTPENDING: state = State.INPUTPENDING; sendop(acc1, op); break; Seite 39

40 Taschenrechner : Control-Komponente / Java (3) public void clear() { state = State.INPUT; digitc = 0; acc1 = 0; sendreset(); view.newtext(""+acc1); Clear-Taste verarbeiten void receiveerg(long erg) { Ergebnis-Wert von Model switch (state) { (Back) verarbeiten case INPUT: System.err.println("receive in state Input"); case INPUTPENDING: acc1 = erg; view.newtext(""+acc1); break; public void receiveerror() { state = State.ERROR; view.newtext("error"); Fehlermeldung von Model (Back) verarbeiten Seite 40

41 Taschenrechner : Control-Komponente / Java (4) private void sendcomp(long acc1) { model.receivecomp(acc1); Hilfsroutine: Wert an Model senden private void sendop(long acc1, char op) { model.receiveop(acc1, op); Hilfsroutine: Wert und Operator an Model senden private void sendrest() { model.receivereset(); Hilfsroutine: Reset an Model senden Seite 41

42 Taschenrechner : Model-Komponente / UML receiveop(v, op) / ops = op acc2 = v OpPending OpWait Warte auf Operator receiveop(v, op) / acc2 = acc2 ops v ops = op senderg(acc2) receivecomp(v) / acc2 = acc2 ops v senderg(acc2) receivereset() / acc2=0 Statechart der Model-Komponente Back-Automat (Model): verwaltet Operator (in ops) verwaltet Zahl (in acc2) nimmt Zahl plus = oder Operator an sendet Ergebnis habe unverarbeiteten Operator Ereignisse (Empfangsereignisse von Front) - receiveop(wert): Wert plus Operator - receivecomp(wert) : Wert plus = - receivereset(): acc2 = 0 Zustände: ohne oder mit hängendem Operator Seite 42

43 Taschenrechner : Model-Komponente / Java (1) package rechner; public class Model { private char ops; private long acc2; private enum State { OPWAIT, OPPENDING ; private State state = State.OPWAIT; public Control control; public void setcontrol(control control) { this.control = control; void receiveop(long v, char op) { switch (state) { case OPWAIT: ops = op; acc2 = v; state = State.OPPENDING; break; case OPPENDING: acc2 = compute(acc2, ops, v); ops = op; state = State.OPPENDING; senderg(acc2); Seite 43 Zahl und Operator verarbeiten

44 Taschenrechner : Model-Komponente / Java (1) void receivecomp(long v) { Zahl verarbeiten switch (state) { case OPWAIT: // kein Operator da: ignore break; case OPPENDING: acc2 = compute(acc2, ops, v); state = State.OPWAIT; senderg(acc2); Seite 44

45 Taschenrechner : Model-Komponente / Java (2) public void receivereset() { state = State.OPWAIT; acc2 = 0; reset private void senderg(long erg) { control.receiveerg(erg); private long compute(long v1, char op, try { switch (op) { case '+' : return case '-' : return case '*' : return case '/' : return catch ( ArithmeticException e) { control.receiveerror(); return 0; Hilfsroutine: Ergebnis an Control senden long v2) { v1+v2; v1-v2; v1*v2; v1/v2; Hilfsroutine: rechnen Seite 45

46 Taschenrechner: Zustandsorientierte Klassen mit (recht) komplexer Logik Entwurf vor Codierung! Logik auch einfacher Taschenrechner ist komplex! Entwurf mit Statecharts hilft beim Entwurf! Komplexes Zustände => Zustandsdiagramm vor Codierung welche Zustände hat ein Objekt welche Ereignisse treten auf welche Ereignisse in welchen Zuständen führen zu welchen Aktionen führen zu welchen neuen Zuständen Seite 46

47 GUI-s: weitere Info siehe Seite 47

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:

Mehr

Ü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

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

2A Basistechniken: Weitere Aufgaben

2A Basistechniken: Weitere Aufgaben 2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java I Vorlesung 11 Graphische Oberflächen mit Swing Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java

Mehr

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische

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

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben Hochschule der Medien Prof Uwe Schulz 14 Juli 2010 Klausur Informatik, EDV-Nr 40301 Seite 1 von 5 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: alle außer tragbare Computer und Nachbar Bearbeitungszeit:

Mehr

Einführung in die Java- Programmierung

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

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

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

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Design Patterns 2. Model-View-Controller in der Praxis

Design Patterns 2. Model-View-Controller in der Praxis Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Bedienung des Web-Portales der Sportbergbetriebe

Bedienung des Web-Portales der Sportbergbetriebe Bedienung des Web-Portales der Sportbergbetriebe Allgemein Über dieses Web-Portal, können sich Tourismusbetriebe via Internet präsentieren, wobei jeder Betrieb seine Daten zu 100% selbst warten kann. Anfragen

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

SEQUENZDIAGRAMM. Christoph Süsens

SEQUENZDIAGRAMM. Christoph Süsens SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von

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

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

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

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

1. Aktionen-Palette durch Fenster /Aktionen ALT+F9 öffnen. 2. Anlegen eines neuen Set über Neues Set... (über das kleine Dreieck zu erreichen) Tipp: Aktionen (c) 2005 Thomas Stölting, Stand: 25.4. 2005 In Photoshop werden häufig immer wieder die gleichen Befehlssequenzen benötigt. Um sie nicht jedesmal manuell neu eingeben zu müssen, können diese

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ -

FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ - FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ - Version vom 02.02.2010 Inhaltsverzeichnis 1. KANN ICH BEI EINER EIGENEN LEKTION NACHTRÄGLICH NOCH NEUE LERNINHALTE ( WAS WURDE BEHANDELT? ) EINFÜGEN?...

Mehr

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

Arrays von Objekten. 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

2. ZELLINHALTE UND FORMELN

2. ZELLINHALTE UND FORMELN 2. ZELLINHALTE UND FORMELN Aufgabe: In dem Beispiel Haushaltsbuch entwickeln Sie eine Kostenaufstellung, die alle monatlichen Ausgaben einzelner Sparten enthält. Darauf basierend berechnen Sie mit einfachen

Mehr

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten Berichte bieten die gleichen Möglichkeit zur Berechnung von Werten wie Formulare und noch einige mehr. Im Gegensatz zu Formularen bieten Berichte die Möglichkeit, eine laufende Summe zu bilden oder Berechnungen

Mehr

Systemvoraussetzung < zurück weiter >

Systemvoraussetzung < zurück weiter > Seite 1 von 6 Systemvoraussetzung < zurück weiter > Bitte überprüfen Sie VOR der Installation von "Traffic Signs", ob ihr System folgende Vorraussetzungen erfüllt: Ist "ArcGIS Desktop" in der Version 9.0

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Technische Dokumentation SilentStatistikTool

Technische Dokumentation SilentStatistikTool Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...

Mehr

5. Tutorium zu Programmieren

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

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Vorbedingung: Office 365 wurde früher oder gleich erfolgreich für den Kunden bestellt.

Vorbedingung: Office 365 wurde früher oder gleich erfolgreich für den Kunden bestellt. Agenda 1 Prozess für den einrichten einen Office 365 Kunden. Vorbedingung: Office 365 wurde früher oder gleich erfolgreich für den Kunden bestellt. > Die ersten vier Folien unten zeigen die Möglichkeiten

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

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Anleitungen TYPO 3 Eingaben tätigen

Anleitungen TYPO 3 Eingaben tätigen Anleitungen TYPO 3 Eingaben tätigen Rufen Sie die Seite http://typo3.lpm.unisb.de/testsite/typo3/ auf! Melden Sie sich mit Benutzernamen und Passwort an! Abbildung 1 Es erscheint folgender Bildschirm:

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

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

Datenbanken Microsoft Access 2010

Datenbanken Microsoft Access 2010 Datenbanken Microsoft Access 2010 Abfragen Mithilfe von Abfragen kann ich bestimmte Informationen aus einer/mehrerer Tabellen auswählen und nur diese anzeigen lassen die Daten einer/mehrerer Tabellen sortieren

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

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

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Integrierte und automatisierte GUI-Tests in Java

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

Mehr

Viele Bilder auf der FA-Homepage

Viele Bilder auf der FA-Homepage Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet

Mehr

Erstellen der Barcode-Etiketten:

Erstellen der Barcode-Etiketten: Erstellen der Barcode-Etiketten: 1.) Zuerst muss die Schriftart Code-39-Logitogo installiert werden! Das ist eine einmalige Sache und muss nicht zu jeder Börse gemacht werden! Dazu speichert man zunächst

Mehr

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Informatik Kurs Simulation. Hilfe für den Consideo Modeler Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Grafische Benutzeroberflächen mit Swing

Grafische Benutzeroberflächen mit Swing Grafische Benutzeroberflächen mit Swing KW 30, Zentralübung Informatik II 2006-07-24 Klausur: Stichpunkte 1. Auswertung System.out.println("abc" instanceof String); Ergebnis von instanceof ist ein boolean,

Mehr

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach 34 70 17 28339 Bremen. Friedrich-Mißler-Straße 42 28211 Bremen

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach 34 70 17 28339 Bremen. Friedrich-Mißler-Straße 42 28211 Bremen Grontmij GmbH Postfach 34 70 17 28339 Bremen Friedrich-Mißler-Straße 42 28211 Bremen T +49 421 2032-6 F +49 421 2032-747 E info@grontmij.de W www.grontmij.de DELFI Benutzeranleitung Dateiversand für unsere

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«... Drucken - Druckformat Frage Wie passt man Bilder beim Drucken an bestimmte Papierformate an? Antwort Das Drucken von Bildern ist mit der Druckfunktion von Capture NX sehr einfach. Hier erklären wir, wie

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

ecaros2 - Accountmanager

ecaros2 - Accountmanager ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf

Mehr

inviu routes Installation und Erstellung einer ENAiKOON id

inviu routes Installation und Erstellung einer ENAiKOON id inviu routes Installation und Erstellung einer ENAiKOON id Inhaltsverzeichnis inviu routes... 1 Installation und Erstellung einer ENAiKOON id... 1 1 Installation... 1 2 Start der App... 1 3 inviu routes

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

Animationen erstellen

Animationen erstellen Animationen erstellen Unter Animation wird hier das Erscheinen oder Bewegen von Objekten Texten und Bildern verstanden Dazu wird zunächst eine neue Folie erstellt : Einfügen/ Neue Folie... Das Layout Aufzählung

Mehr

Java Projekt: Tic Tac Toe + GUI

Java Projekt: Tic Tac Toe + GUI Java Projekt: Tic Tac Toe + GUI Rechnerpraktikum aus Programmierung im WS 2005/06 unter der Leitung von Dr. Michael Hahsler Tadeh Amirian (h0253821) 10.01.2006 1) Problemdefinition Beim TicTacToe Spiel

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Posteingang - Auf einen Blick

Posteingang - Auf einen Blick BUCHUNGSASSISTENT Inhalt:... Vermieterbereich: Posteingang Übersicht Auf Anfragen antworten Per Email antworten Aus dem Vermieterbereich heraus antworten Auf Anfragen antworten - verfügbar Auf Anfragen

Mehr

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Anleitung für die Teilnahme an den Platzvergaben Studio II, Studio IV und Studio VI im Studiengang Bachelor Architektur SS15 Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15 1 Bitte melden Sie sich über das Campusmanagementportal campus.studium.kit.edu

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

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager email-rückläufer Script. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager email-rückläufer Script. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 7 combit Relationship Manager email-rückläufer Script Inhalt Einleitung 3 Notwendige Anpassungen 3 crm Solution

Mehr

Graphische Benutzungsoberflächen

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

Mehr

www.computeria-olten.ch Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

www.computeria-olten.ch Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies www.computeria-olten.ch Monatstreff für Menschen ab 50 Merkblatt 42 Temporäre Dateien / Browserverlauf löschen / Cookies Im Internet-Explorer Extras / Browserverlauf löschen Jetzt entscheiden, was man

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

Aufklappelemente anlegen

Aufklappelemente anlegen Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie

Mehr

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten. 1 Einleitung Lernziele automatische Antworten bei Abwesenheit senden Einstellungen für automatische Antworten Lerndauer 4 Minuten Seite 1 von 18 2 Antworten bei Abwesenheit senden» Outlook kann während

Mehr

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7 Tutorial: Wie kann ich Kontakte erfassen In myfactory können Sie Kontakte erfassen. Unter einem Kontakt versteht man einen Datensatz, der sich auf eine Tätigkeit im Zusammenhang mit einer Adresse bezieht.

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Facharbeit Informatik. Thema:

Facharbeit Informatik. Thema: Facharbeit Informatik Thema: Rechneraufbau Mit Locad 2002 1 Inhaltsangabe Inhalt: Seite: 1. Einleitung 3 2. Inbetriebnahme der Schaltung 3 3. Eingabe 4 4. CPU 5 5. RAM/HDD 8 6. Ausgabe 10 7. Auf einer

Mehr

Statuten in leichter Sprache

Statuten in leichter Sprache Statuten in leichter Sprache Zweck vom Verein Artikel 1: Zivil-Gesetz-Buch Es gibt einen Verein der selbstbestimmung.ch heisst. Der Verein ist so aufgebaut, wie es im Zivil-Gesetz-Buch steht. Im Zivil-Gesetz-Buch

Mehr

Textgestaltung mit dem Editor TinyMCE Schritt für Schritt

Textgestaltung mit dem Editor TinyMCE Schritt für Schritt Textgestaltung mit dem Editor TinyMCE Schritt für Schritt Folgender Artikel soll veröffentlicht und mit dem Editor TinyMCE gestaltet werden: Eine große Überschrift Ein Foto Hier kommt viel Text. Hier kommt

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

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

Auftragsbearbeitung 3.1

Auftragsbearbeitung 3.1 Auftragsbearbeitung / Bearbeitung bestehender Aufträge Automatische / manuelle Soll/Ist-Aufteilung (Stempelungen) Auf Aufträge kann über das Programm 15.2.1 gestempelt werden (PC in der Werkstatt auf dem

Mehr

Bei der Anlage von Pauschalen ist folgendes zu beachten!!!!!!!!

Bei der Anlage von Pauschalen ist folgendes zu beachten!!!!!!!! Bei der Anlage von Pauschalen ist folgendes zu beachten!!!!!!!! Vorgaben für Pauschen: Die Pauschale wird in der Homepage mit 3 Punkten dargestellt Titel ist der Produkttitel Pro Punkt jeweils maximal

Mehr

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,

Mehr

Zahlen auf einen Blick

Zahlen auf einen Blick Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Java Lab 2006/12/13 Client

Java Lab 2006/12/13 Client Java Lab 2006/12/13 Client Prof. Dr. Bernhard Humm Version: 1.0 Date: 2006/12/06 Darmstadt University of Applied Sciences Department of Computer Science Schöfferstr. 8b 64295 Darmstadt Germany 1 Einleitung

Mehr

ELSTER Daten versenden

ELSTER Daten versenden ELSTER Daten versenden Hauptmenü: Über den Haupt-Menüpunkt ELSTER gelangen Sie zu allen wichtigen Funktionen rund um ELSTER. - Verfügbarkeit: Sie können hierüber die Verfügbarkeit der ELSTER-Server für

Mehr

BENUTZERHANDBUCH für. www.tennis69.at. Inhaltsverzeichnis. 1. Anmeldung. 2. Rangliste ansehen. 3. Platzreservierung. 4. Forderungen anzeigen

BENUTZERHANDBUCH für. www.tennis69.at. Inhaltsverzeichnis. 1. Anmeldung. 2. Rangliste ansehen. 3. Platzreservierung. 4. Forderungen anzeigen BENUTZERHANDBUCH für www.tennis69.at Inhaltsverzeichnis Einleitung 1. Anmeldung 2. Rangliste ansehen 3. Platzreservierung 4. Forderungen anzeigen 5. Forderung eintragen 6. Mitgliederliste 7. Meine Nachrichten

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

I Serverkalender in Thunderbird einrichten

I Serverkalender in Thunderbird einrichten I Serverkalender in Thunderbird einrichten Damit Sie den Kalender auf dem SC-IT-Server nutzen können, schreiben Sie bitte zuerst eine Mail mit Ihrer Absicht an das SC-IT (hilfe@servicecenter-khs.de). Dann

Mehr

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Lieferschein Lieferscheine Seite 1 Lieferscheine Seite 2 Inhaltsverzeichnis 1. STARTEN DER LIEFERSCHEINE 4 2. ARBEITEN MIT DEN LIEFERSCHEINEN 4 2.1 ERFASSEN EINES NEUEN LIEFERSCHEINS 5 2.1.1 TEXTFELD FÜR

Mehr

8 Design Patterns. Events

8 Design Patterns. Events 8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

BEDIENUNG ABADISCOVER

BEDIENUNG ABADISCOVER BEDIENUNG ABADISCOVER Juni 2005 / EMO v.2005.1 Diese Unterlagen sind urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung der Unterlagen, oder Teilen

Mehr