GUI-Programmierung in Java

Größe: px
Ab Seite anzeigen:

Download "GUI-Programmierung in Java"

Transkript

1 GUI-Programmierung in Java Von Aydin Alatas und Tobias Fischer Einleitung Im Folgenden wird die Programmierung von Grafikoberflächen in Java erklärt. Diese werden in so gut wie jeder Desktop Anwendung benutzt, weshalb das Thema zu den Grundfähigkeiten eines jeden Programmierers gehören sollte. In unserer Ausarbeitung werden wir nun zuerst die Konzepte für eine sinnvolle und leicht erweiterbare Implementierung von Grafikoberflächen sowie die dafür notwendigen Standardbibliotheken vorstellen. Danach geben wir einen Überblick über die bereitgestellten Komponenten. Ebenso werden wir erläutern, wie man die Komponenten dazu verwendet, die gewünschte Funktion im Programm zu implementieren. Außerdem werden wir zeigen, wie man Parallelität in Bezug auf Grafikoberflächen realisiert und was man dabei beachten muss. Danach erklären wir, wie man mit GUI-Komponenten zeichnen kann und so ihr Aussehen verändert. Zuletzt wenden wir uns in Bezug auf die vorgestellten Programmierkonzepte der Programmlogik zu und erläutern, wie sie mit der Grafikoberfläche interagieren sollte. Als Grundlage haben wir das im Literaturverzeichnis angegebene Handbuch Java ist auch eine Insel von Christian Ullenboom verwendet. Am wichtigsten waren hierbei die Kapitel 14 bzw. 19 in Auflage 9 und Kapitel 14 in Auflage Das Model-View-Controller Konzept Das Model-View-Controller (MVC) Konzept ist das zentrale Muster für die Erstellung eines Softwareprojektes mit grafischer Benutzeroberfläche. Erstmals erdacht wurde es um 1978/1979 von Professor Trygve Reenskaug am Xerox PARC und wurde zunächst für Benutzeroberflächen in Smalltalk verwendet. Es besteht aus drei Klassen, die miteinander Interagieren. Zum einen gibt es die sog. View, der die Grafikoberfläche darstellt. Dann gibt es den Controller, der die Benutzereingaben auf dem View registriert und diese an die letzte Klasse das Model, also die Datenverwaltung, weiterleitet. Aufgebaut ist das MVC Konzept auf dem Observer Pattern. Dieses funktioniert wie folgt. Ein Beobachter (ConcreteObserver) meldet sich an und wird über jede Änderung des zu beobachtenden Objekts (Subject) informiert. Dies geschieht über die Methode notifyobservers(). Abbildung 1: Obersever Pattern

2 Daraus ergibt sich folgender Ablauf: Das Subject registriert eine Änderung und informiert über die Methode notifyobservers() die ConcreteObservers. Überträgt man dies auf das MVC-Konzept, steht das Subject für die View, die eine Änderung z. B. über einen gedrückten Button registriert. Nun wird die Methode notifyobservers() in der Subject Klasse ausgeführt, die den Controller darstellt. Diese informiert die ConcreteObservers, die das Model darstellen, über die Änderung. In dieser Klasse werden dann die konkreten Operationen ausgeführt. Daraus ergibt sich folgende Aufgabenteilung für die Klassen im MVC-Konzept. Abbildung 2: MVC-Konzept Die sog. View repräsentiert die GUI, die den Controller über Benutzereingaben informiert. Dieser ändert die Daten im Model über Methodenaufrufe. Das Model wiederum informiert die View über diese Änderung und die Darstellung wird aktualisiert. Diese Dreiteilung hat den Vorteil, dass alle Komponenten unabhängig entwickelt werden können. Konkret kann man also die View weiterentwickeln, ohne das Model zu beeinflussen. Dies ermöglicht z. B. eine einfache Designänderung von Anwendungsprogrammen. Hat man nun z. B. ein Programm, welches eine Datenbank verwaltet, würde die Datenbank im Model gespeichert werden. Die Oberfläche, auf der die Daten dargestellt werden, wäre die View. Der Controller würde dann z. B. bei einem Klick auf Element löschen dem Model die Anweisung geben, das in der View ausgewählte Element aus seiner Datenbank zu löschen. Das Model würde nun die View über diese Änderung informieren und die View würde die aktualisierten Informationen vom Model einholen und darstellen. 1.2 Modifizierte MVC Architektur für Swing Das MVC-Konzept grenzt die View ganz klar vom Controller ab. Dies ist in der Praxis aber oft nicht sinnvoll. Die Trennung führt nämlich bei den Entwicklern zu einem erhöhten Aufwand, da View und Controller oft eng miteinander verbunden sind und daher bei einer Trennung viele Schnittstellen implementiert werden müssten. Weiterhin ergibt sich dadurch ein erhöhter

3 Kommunikationsaufwand zwischen den Objekten, da die Benachrichtigung bei Ereignissen in der View immer über den Controller läuft. In unserem Beispiel mit dem Programm zur Datenbankverwaltung müsste nun die View immer den Controller über den Klick auf den Button Element löschen informieren und der Controller müsste sich die Information über das ausgewählte Element bei der View einholen und dann den Befehl an das Model weiterleiten. Diesen Aufwand spart man bei der modifizierten MVC-Architektur. Daher verschmilzt man View und Controller in Swing, um die Interaktion der Objekte zu vereinfachen. Dieses Konzept wird Model View Presenter (MVP-Pattern) genannt. 1.3 Umsetzung von Grafikoberflächen in Java Zur Umsetzung von Anwendungsprogrammen mit Grafikoberflächen stellt Java verschiedene Bibliotheken zur Verfügung. Die zwei wichtigsten sind das oben erwähnte Swing (javax.swing) und das Abstract Window Toolkit, kurz AWT (java.awt). Diese Bibliotheken verfügen über folgende Funktionen: Sie erlauben das Zeichnen grafischer Grundelemente wie Linien und Polygone und ermöglichen das Setzen von Farben und die Auswahl von Zeichensätzen. Sie bieten grafische Komponenten (GUI-Komponenten), auch Steuerelemente oder Widgets genannt, wie zum Beispiel Fenster, Textfelder und Buttons. Sie definieren ein Modell zur Behandlung von Ereignissen, wie etwa Mausbewegungen. AWT war die erste Bibliothek für die Erstellung von grafischen Benutzeroberflächen und ist daher sehr einfach gehalten. Professionelle Oberflächen lassen sich allein mit AWT daher nur mühsam erstellen. Swing erschien drei Jahre später und baut auf AWT auf. Die wesentlichen Unterschiede zwischen Swing und AWT sind: Das AWT bietet weniger Komponenten als Swing. Swing-Komponenten können transparent und beliebig geformt sein; eine Schaltfläche kann abgerundet sein. Jede Swing-Komponente kann mit einem Rahmen versehen werden. AWT-Komponenten arbeiten nicht nach dem MVC-Konzept, die Daten werden also nicht getrennt von der Komponente getrennt gehalten. Die AWT-Methoden sind thread-sicher, es können also mehrere Threads zur gleichen Zeit Methoden der AWT-Komponenten aufrufen. Swing hingegen verzichtet vor allem aus Performance-Gründen auf die Synchronisation der Threads. 2.1 View: Bedienelemente Die Interaktion mit dem Benutzer geschieht in erste Linie mit Bedienelementen. Swing und AWT bieten eine Reihe klassischer Elemente: JButton: Schaltfläche zum Klicken JLabel: Nicht veränderbarer Text JTextField: Beschreibbare Textfläche JList: Liste bestehend aus auswählbaren Elementen

4 Diese erben alle von der Klasse Component und lassen sich entsprechend in ihrer Beschriftung, Form, Größe etc. manipulieren. Bedienelemente müssen, um angezeigt zu werden, zu sogenannten Containern hinzugefügt werden (siehe nächster Abschnitt). Beispiel: Es soll ein JButton mit dem Standardkonstruktor erstellt werden, welcher einen String entgegennimmt, der die Beschriftung definiert. Er soll die Breite 100px und die Höhe 70px haben. Ebenfalls soll er einen grünen Hintergrund besitzen. Wir verwenden für diese Manipulation die von Component vererbten Methoden setsize(int width, int height) und setbackground(color c). import javax.swing.*; [...] JButton button = new JButton("Button"); button.setsize(100,70); button.setbackground(color.green); [...] 2.2 View: Container Komponenten müssen an einem für den Nutzer sichtbaren und eindeutigen Ort nach ihrer Erstellung angezeigt werden. Hierzu bietet AWT die Klasse Container, welche viele Methoden zur Verwaltung bietet. Dazu gehören Komponenten aufnehmen, nach einem bestimmten Muster anordnen (siehe nächster Abschnitt), anzeigen und nach Belieben wieder entfernen. Auch ist es möglich, einfache Figuren (siehe Abschnitt 3.3 Zeichnen mit GUI-Komponenten ) etc. auszeichnen zu lassen. Das klassische Fenster ist als Klasse JFrame realisiert, welche von Container erbt und in sich selbst noch einige weitere Container abspeichert. Dazu gehört der sogenannte ContentPane, welcher beim Fenster den für die Komponenten gedachten Bereich darstellt. Eine Komponente selbst kann ebenfalls ein Container sein. So gibt es z.b. die Klassen JPanel: Standard-Container JTabbedPane: Mehrere Container, die per Tabs geregelt werden JScrollPane: Container mit Scroll-Funktion JDesktopPane: ermöglicht Fenster-in-Fenster -Funktion, wobei JInternalFrame ein inneres Fenster darstellt Beispiel: Es soll ein Fenster erstellt werden, das einen JButton beinhaltet. Anstatt direkt ein JFrame zu erstellen, erweitern wir es durch eine Unterklasse MyFrame und passen es unseren Bedürfnissen an. Da der Standardkonstruktor von JFrame einen String mit dem Fenstertitel entgegennimmt, rufen wir super(string title) auf. Der zuvor erstellte JButton muss zum ContentPane hinzugefügt werden. Hierzu verwendet man die Methode

5 JFrame.add(Component c). Damit eine Instanz von MyFrame sichtbar wird, müssen wir anschließend die Methode setvisible(boolean b) mit true aufrufen. import javax.swing.*; class MyFrame extends JFrame{ public MyFrame(String title){ super(title); [...] JButton button = new JButton("Button"); this.add(button); this.setvisible(true); 2.3 View: LayoutManager Damit Komponenten in Containern sinnvoll und vor allem flexibel platziert werden, bieten viele Swing- bzw. AWT-Klassen die Verwendung von LayoutManagern an. Containerklassen wie z.b. das JFrame verteilen ihre Komponenten so, wie es von ihrem LayoutManager bestimmt wird. Dies ermöglicht eine sich der Größe des JFrames dynamisch anpassende Verteilung. So ist es für manche Komponenten sinnvoll, sie unabhängig von der Fenstergröße stets an einen bestimmten Teil mit einer festen Größe anzudocken. Andere sollen vielleicht automatisch zentriert werden und ihre Größe dem Fenster anpassen. Indem man Container innerhalb von Containern verwendet, lassen sich auch Layout-Typen kombinieren, was bei komplexeren Oberflächen oftmals sinnvoll ist. Swing bietet eine Reihe vordefinierter LayoutManager an. Dazu gehören: BorderLayout: Aufteilung in fünf Bereiche (oben, links, zentral, rechts, unten) BoxLayout: horizontale bzw. vertikale absolute Anordnung CardLayout: ermöglicht einfaches anzeigen/verstecken von Containern (ähnlich wie Tabs) FlowLayout: horizontale, zentrierte Anordnung, die sich der Fensterbreite dynamisch anpasst GridLayout: rasterförmige Anordnung, wobei alle Komponenten dieselbe Größe bekommen GridBagLayout: wie GridLayout, jedoch mit beliebiger Größe bzw. Spannweite der Zellen Beispiel: Es sollen ein am oberen Rand angedockter JButton und ein sich dem Fenster anpassende JTextArea erstellt werden. Dafür erscheint die Verwendung des BorderLayouts am sinnvollsten. Dieses muss zunächst erstellt und dem Container (ContentPane) zugewiesen werden. Auf das Layout eines JFrames hat man einfacherweise mit setlayout(layoutmanager lm) Zugriff. Der JButton wird mit dem Parameter BorderLayout.PAGE_START und der JTextArea mit BorderLayout.CENTER zum Container hinzugefügt. Diese Parameter stehen für den oberen und den mittleren Bereich.

6 import javax.swing.*; import java.awt.*; class MyFrame extends JFrame{ public MyFrame(String title){ super(title); [...] this.setlayout(new BorderLayout()); JButton button = new JButton("Button"); JTextArea textarea = new JTextArea("Text!"); this.add(button, BorderLayout.PAGE_START); this.add(textarea, BorderLayout.CENTER); this.setvisible(true); Abbildung 3: Instanz von MyFrame 3.1 Controller: Event Handling Um den gegebenen Fenstern und Bedienelementen eine bedeutende Funktionalität zuzuschreiben, arbeitet Swing mit sogenannten Ereignisquellen ( event sources ), Ereignissen ( events ) und Horchern ( listeners ). Die Quelle für ein Ereignis kann z.b. ein JButton oder ein JPanel sein. Ein Ereignis selbst ist z.b. das Drücken eines JButtons oder die Veränderung der Größe eines JFrames mit dem Cursor. Jedes dieser Ereignisse führt dazu, dass mind. eine für das Ereignis speziell vordefinierte Methode ausgeführt wird. Standardmäßig ist diese Methode entweder leer (z.b. beim Drücken eines neu erstellten JButtons) oder mit einer intuitiven Funktion versehen (z.b. JFrame Größenanpassung mit Cursor). Diese Methode befindet sich in einem Listener-Objekt, welches zuvor bei der Quelle als Listener angemeldet wurde. Sie bekommt als Parameter ein AWTEvent-Objekt, welches Informationen wie z.b. Quelle und Zeitpunkt des Events bereitstellt. Es können beliebig viele Listener zur Quelle eines Events hinzugefügt werden. Ebenfalls kann ein Listener auf mehrere Events reagieren. Man unterscheidet zwischen mehreren Events, die alle von der Oberklasse AWTEvent erben. Die wohl wichtigsten sind: ActionEvent: z.b. JButton-Klicks oder JRadioButton-Markierung WindowEvent: z.b. Schließen eines JFrames MouseEvent: z.b Maus-Klicks oder einfache Mausbewegungen auf JFrames Nach der Erstellung eines Fensters wird parallel dazu noch eine Ereignisschlange ( event queue ) angelegt und ein sogenannter AWT-Event-Thread ( event dispatch thread ) gestartet. Wenn nun im Fenster Events registriert werden, werden diese als ein AWTEvent-Objekt an die EventQueue des Fensters angehängt und vom AWT-Event-Thread abgearbeitet, indem die jeweiligen Listener- Programmcodes ausgeführt werden. Beispiel:

7 JButton button1 bzw. button2 sollen bei Betätigung ihre Beschriftung ausgeben. Der JButton-Druck ist ein ActionEvent. Um ein solches Event abzufangen, geht man wie folgt vor: 1) Es muss zunächst ein Objekt erzeugt werden, welches ActionListener und somit die Methode public void actionperformed(actionevent e) implementiert. import java.awt.event.*; class MyActionListener implements ActionListener{ public void actionperformed(actionevent e){ String name = ((JButton)(e.getSource())).getText(); System.out.println(name); Dies kann unter anderem durch die Verwendung anonymer innerer Klassen oder durch Auslagerung in Listener-Klassen realisiert werden. Da in dem Beispiel beide Buttons eine sehr ähnliche Funktion haben sollen, reicht es, nur einen Listener zu erstellen, und diesen für beide Buttons zu verwenden. Für den einzigen Unterschied (also die Beschriftung des Buttons bei der Ausgabe) können wir das mitgegebene Objekt des ActionEvents verwenden, welches den Namen der Quelle mitliefert. Unser ActionListener wird eine Instanz der Klasse MyActionListener. 2) Der erstellte Listener muss nun mit der von JButton bereitgestellten Methode addactionlistener(actionlistener a) bei button1 und button2 angemeldet werden. import javax.swing.*; class MyFrame extends JFrame{ public MyFrame(String title){ super(title); [...] JButton button1 = new JButton("Button1"); JButton button2 = new JButton("Button2"); MyActionListener listener = new MyActionListener(); button1.addactionlistener(listener); button2.addactionlistener(listener); this.add(button1); this.add(button2); this.setvisible(true); Wenn nun ein ActionEvent durch button1 bzw. button2 ausgelöst wird, werden alle ActionListener, die zuvor bei button1 bzw. button2 angemeldet wurden, informiert, indem ihre actionperformed-methoden aufgerufen werden. Entsprechend wird "button1" bzw. "button2" ausgegeben.

8 In Bezug auf das bereits vorgestellte MVC-Konzept entspricht MyFrame dem View und MyActionListener dem Controller. 3.2 Parallelität und GUI-Komponenten Threads Bei den meisten Anwendungsprogrammen mit Grafikoberfläche ist es wichtig, dass man mehrere Operationen gleichzeitig ausführen kann. Lädt man mit seinem Programm beispielsweise eine große Datei, soll die Grafikoberfläche dabei nicht einfrieren, sondern es soll z. B. ein Fortschrittsbalken durchlaufen. Um eine solche Parallelität zu realisieren, ist die Verwendung von sog. Threads notwendig. Threads sind Ausführungsstränge innerhalb eines Prozesses, die quasi gleichzeitig ablaufen sollen. Dies wird durch das Betriebssystem gewährleistet, welches alle paar Millisekunden zwischen den vorhandenen Threads umschaltet und so eine verzahnte Bearbeitung der Prozesse gewährleistet. Will man nun einen neuen Thread in sein Programm einbauen, muss die Klasse, die den Thread beinhaltet, das Interface java.lang.runnable implementieren. Dieses besitzt die Methode run(), in der man definiert, was der Thread tun soll. Um den Thread zu starten, ruft man Thread.start() auf. Dazu sehen wir uns folgendes Beispiel an. Hier werden zwei Threads erstellt, die jeweils das Wort Eins bzw. Zwei in der Konsole ausgeben. public class TestThreads{ public static void main(string[] args){ Thread t1 = new Thread(new MyThread("Eins")); Thread t2 = new Thread(new MyThread("Zwei")); t1.start(); t2.start(); class MyThread implements Runnable{ final String mytext; public MyThread(String s){ mytext = public void run(){ for(int i = 0; i < 20; i++){ System.out.println(myText); Abbildung 4: Ausgabe der Konsole

9 Hier sieht man sehr gut die verzahnte Bearbeitung der Threads, wodurch scheinbare Parallelität erzeugt wird. Diese verzahnte Bearbeitung kann allerdings zum Problem werden, wenn zwei Threads auf dieselbe Komponente zugreifen wollen. Hier kann es zu sog. Deadlocks kommen. Deadlocks sind unerwünschte, aber mögliche Programmzustände, in denen zwei Threads sich gegenseitig blockieren und deshalb keiner der beiden Threads weiterarbeiten kann. Diese zu vermeiden ist Aufgabe des Programmierers, da Swing wie in Abschnitt 1.3 erwähnt nicht thread-sicher ist Richtiger Umgang mit Threads Die Tatsache, dass Komponenten sowie Model-Daten nicht nur vom AWT-Event-Thread manipuliert werden können, kann zu einigen unerwünschten Zuständen führen. So kann es sein, dass die Datenverwaltung die Benutzeroberfläche über eine Datenänderung informiert und anschließend von einem anderen Thread unterbrochen wird, welcher eine weitere Datenänderung durchführt, noch bevor die Benutzeroberfläche aktualisiert werden konnte. Dies führt dazu, dass die Benutzeroberfläche anschließend auf Basis veralteter Informationen auf die Datenverwaltung zugreift, um nach den neuen Daten zu suchen, und unter Umständen nicht das findet, was sie sucht, was zu Exceptions führen kann. Um solche Unstimmigkeiten zu vermeiden, ist es sinnvoll, Änderungen der Benutzeroberfläche ausschließlich durch den AWT-Event-Thread auszuführen. Da dieser einfach und zuverlässig die EventQueue abarbeitet, herrscht ein gewisser Determinismus, was beim parallelen Arbeiten mehrerer Threads nicht der Fall ist. Die Klasse EventQueue stellt für dieses Problem zwei statische Methoden bereit: 1. invokeandwait(runnable r) nimmt eine Runnable-Implementierung des auszuführenden Codes entgegen, übergibt der EventQueue diesen und wartet, bis der Code vom AWT-Event-Thread ausgeführt wurde 2. invokelater(runnable r) funktioniert genauso wie invokeandwait(...), jedoch wird nicht auf die Ausführung des Codes gewartet, sondern sofort weiter gearbeitet Der AWT-Event-Thread führt die angemeldeten Programmstücke aus, nachdem die EventQueue abgearbeitet wurde. Mit diesen Methoden können andere Threads Änderungen an der Benutzeroberfläche/Daten vornehmen, ohne dass es zu dem oben beschriebenen Problem kommen kann. Beispiel: Es soll ein JProgressBar mit dem Variablennamen pbbar von einem nicht-awt-event-thread auf den Wert x aktualisiert werden. Die Verwendung von invokelater(runnable r) erscheint hier am sinnvollsten, da die Aktualisierung eines Prozessbalkens meist nicht zwingend Voraussetzung für den darauf folgenden Code ist. EventQueue.invokeLater( new Runnable(){ public void run(){ pbbar.setvalue(x); );

10 3.3 Zeichnen mit GUI-Komponenten GUI-Komponenten besitzen vordefinierte Methoden, die sich wie in jeder Klassenhierarchie überschreiben lassen. So kann man durch das Überschreiben dieser Methoden das Verhalten und die Funktion der GUI-Komponente beliebig anpassen. Im Folgenden wird dies am Beispiel des im Vorführungsprogamm verwendeten DrawPanels veranschaulicht. Hier erstellen wir eine neue Unterklasse von JPanel, das DrawPanel. Nun passen wir die Methode protected void paintcomponent(graphics g) der Oberklasse JPanel so an, dass es möglich wird, auf dem Panel Linien zu zeichnen. Dies geschieht, indem wir auf das Objekt g der Klasse Graphics die bereitgestellte Methode drawline(int x1, int y1, int x2, int y2) ausführen. Das übergebene Graphics-Objekt g ist ein Attribut der Klasse Window, von der JPanel erbt. Es kann auch mit der Methode getgraphics() der Klasse JPanel aufgerufen werden. Dieses Objekt stellt die grafische Darstellung des Panels auf dem JFrame dar. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DrawPanel extends protected void paintcomponent( Graphics g ) { super.paintcomponent( g ); g.drawline( 10, 10, 100, 50 ); Man führt also nun zuerst die paintcomponent-methode der Klasse JPanel aus, um das Panel auf das JFrame zu zeichnen. Danach wird zusätzlich eine Linie vom Punkt (10,10) zum Punkt (100,50) gezeichnet. Die paintcomponent-methode wird immer dann ausgeführt, wenn man das Panel in seiner Form verändert. Will man nun mit der Maus etwas zeichnen können, muss man dazu einen sog. MouseMotionListener verwenden, der analog zum bereits vorgestellten ActionListener funktioniert. public class DrawPanel extends JPanel { public DrawPanel(){ ); [...] setbackground(color.white); addmousemotionlistener(new public void mousedragged(mouseevent e){ getgraphics().filloval(e.getx(), e.gety(), 3, 3);

11 Hier wird nun etwas auf das Panel gezeichnet, wenn man die linke Maustaste gedrückt hält. Dies geschieht mithilfe der Methode mousedragged, die der MouseMotionListener bereitstellt. Hier wird ein ausgefülltes Oval gezeichnet, das eine Höhe und Breite von 3 Pixeln hat und auf der aktuellen Mausposition liegt. Diese Änderungen verfallen allerdings mit erneutem Aufruf der paintcomponent-methode des DrawPanels, da es bei Veränderung seiner Form neu gezeichnet werden muss. Demnach muss man die vorher begangenen Veränderungen speichern und wieder Abrufen. Dies geschieht in der Model Klasse. 4.1 Model: Datenspeicherung In der Model Klasse werden nun, wie in Abschnitt 1.1 beschrieben, die programmrelevanten Daten verwaltet. Dies wird wieder anhand unseres Vorführprogramms erläutert. Hier müssen wir nun die Änderungen, die im DrawPanel registriert werden, speichern. Dies geschieht über eine ArrayList. Hier wird alles Relevante festgehalten und bei einem erneuten Aufruf der paintcomponent-methode abgerufen. Dies sieht dann wie folgt public void paintcomponent(graphics g){ super.paintcomponent(g); for (int i = 0; i < model.data.size(); i++){ paint(g, model.data.get(i)); Die ArrayList data, die aus Objekten der Klasse Figur besteht und in der Klasse model gespeichert wird, enthält alle begangenen Änderungen durch den Nutzer. In der Klasse Figur werden dabei alle relevanten Daten zur gezeichneten Figur gespeichert. Dazu zählen z. B. die Mausposition, der ausgewählte Modus (Viereck, Kreis, Strich, etc.) und die ausgewählte Farbe. Das gesamte Bild besteht dann aus Objekten der Klasse Figur, die mit der Methode paint(graphics g, Figur f) erneut auf das DrawPanel gezeichnet werden. Zusammenfassung Wichtig für die Erstellung eines eigenen Softwareprojektes mit Grafikoberfläche in Java ist nun, immer nach dem MVC-Konzept zu arbeiten. Dies ermöglicht eine separate Entwicklung von Oberfläche und Programmlogik. Weiterhin sollte man die Standardbibliotheken Swing und AWT kennen und die bereitgestellten Komponenten korrekt implementieren können. Außerdem ist die Implementierung der EventHandler sehr wichtig, um der Oberfläche eine Funktionalität zu geben. Darüber hinaus sollte man bei komplexeren Programmen darauf achten, Threads zu verwenden, um einem Einfrieren der Grafikoberfläche vorzubeugen. Hierbei ist besonders darauf zu achten, keine kritischen Zustände durch parallelen Zugriff auf Komponenten zu erzeugen. Außerdem kann man seine Swing Komponenten auch selbst gestalten und in ihrem Aussehen verändern. Dies geht über die vorstellte Methode oder über entsprechende Attribute der Komponenten.

12 Literaturverzeichnis Ullenboom, Christian: Java ist auch eine Insel. Das umfassende Handbuch, hg. von Rheinwerk Computing, Bonn, 10., aktualisierte Auflage, 2011 Ullenboom, Christian: Java ist auch eine Insel. Das umfassende Handbuch, hg. von Rheinwerk Computing, Bonn, 9., aktualisierte Auflage, 2010 Abbildung 1: WikiSolved: Observer Pattern, Online-Publikation, Observer.svg.png, Stand: Abbildung 2: Stefan Middendorf, Reiner Singer, Jörn Heid: Java. Programmierhandbuch und Referenz, Online-Publikation, Stand:

Objektorientierte Software-Entwicklung

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

Mehr

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

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

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

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

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

GRAFISCHE BENUTZERSCHNITTSTELLEN

GRAFISCHE BENUTZERSCHNITTSTELLEN Vorlesung 4.4 GRAFISCHE BENUTZERSCHNITTSTELLEN Dr. Philip Mayer # 1 GUIs Grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) bieten dem Benutzer Zugriff auf ein Anwendungssystem GUIs sind

Mehr

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

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet

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

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

GUI-Programmierung in Java

GUI-Programmierung in Java GUI-Programmierung in Java Jan Pihl, Daniel Bugdalle 1. Einleitung Betreuer: Thomas Ströder Die Bedienung von Software stellt sich oft als etwas schwierig für viele Nutzer heraus, wenn es keine grafische

Mehr

Swing Lernen am Code Teil 1

Swing Lernen am Code Teil 1 Swing Lernen am Code Teil 1 Swing Fenster erzeugen import java.awt.* import java.awt.event.* import javax.swing.* class SwingDemo{ static JFrame Fenster; public static void main(string[] args){ } } Fenster

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

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

Ü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

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

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

Benutzeroberflächen. Java Teil 4

Benutzeroberflächen. Java Teil 4 Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in

Mehr

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Das können wir Ihnen versprechen: An der neuen Taskleiste in Windows 7 werden Sie sehr viel Freude haben. Denn diese sorgt

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

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Eine Anwendung mit InstantRails 1.7

Eine Anwendung mit InstantRails 1.7 Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der 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

Newsletter. 1 Erzbistum Köln Newsletter

Newsletter. 1 Erzbistum Köln Newsletter Newsletter 1 Erzbistum Köln Newsletter Inhalt 1. Newsletter verwalten... 3 Schritt 1: Administration... 3 Schritt 2: Newsletter Verwaltung... 3 Schritt 3: Schaltflächen... 3 Schritt 3.1: Abonnenten Verwaltung...

Mehr

Grundlagen der Programmierung APPLETS

Grundlagen der Programmierung APPLETS Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets

Mehr

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

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke GUIs mit Swing Markus Reschke 28.08.2014 Beispiel: Ein einfaches GUI-Programm Siehe Painter.java Markus Reschke GUIs mit Swing 2 GUI Frameworks in Java AWT war das erste GUI-Framework, welches mit Java

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

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

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

Office-Programme starten und beenden

Office-Programme starten und beenden Office-Programme starten und beenden 1 Viele Wege führen nach Rom und auch zur Arbeit mit den Office- Programmen. Die gängigsten Wege beschreiben wir in diesem Abschnitt. Schritt 1 Um ein Programm aufzurufen,

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen Dateiname: ecdl2_05_03_documentation Speicherdatum: 22.11.2004 ECDL 2003 Modul 2 Computermanagement

Mehr

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Allgemeines: Bitte lesen Sie sich diese Anleitung zuerst einmal komplett durch. Am Besten, Sie drucken sich diese Anleitung

Mehr

Einführung in GUI-Programmierung. javax.swing

Einführung in GUI-Programmierung. javax.swing Einführung in GUI-Programmierung javax.swing GUI Graphical User Interface ( Grafische Benutzerschnittstelle ) Anschaulichere und leichtere Möglichkeit zur Dateneingabe und Kontrolle von Programmen Stellt

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 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

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

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

Anleitung zur Verwendung der VVW-Word-Vorlagen

Anleitung zur Verwendung der VVW-Word-Vorlagen Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Feb-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte

Mehr

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: webadmin@rundkirche.de Inhaltsverzeichnis 1 Einführung

Mehr

Hilfe zur Urlaubsplanung und Zeiterfassung

Hilfe zur Urlaubsplanung und Zeiterfassung Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,

Mehr

1. Allgemein 2. 2. Speichern und Zwischenspeichern des Designs 2. 3. Auswahl der zu bearbeitenden Seite 2. 4. Text ergänzen 3. 5. Textgrösse ändern 3

1. Allgemein 2. 2. Speichern und Zwischenspeichern des Designs 2. 3. Auswahl der zu bearbeitenden Seite 2. 4. Text ergänzen 3. 5. Textgrösse ändern 3 Inhaltsverzeichnis 1. Allgemein 2 2. Speichern und Zwischenspeichern des Designs 2 3. Auswahl der zu bearbeitenden Seite 2 4. Text ergänzen 3 5. Textgrösse ändern 3 6. Schriftart ändern 3 7. Textfarbe

Mehr

SICHERN DER FAVORITEN

SICHERN DER FAVORITEN Seite 1 von 7 SICHERN DER FAVORITEN Eine Anleitung zum Sichern der eigenen Favoriten zur Verfügung gestellt durch: ZID Dezentrale Systeme März 2010 Seite 2 von 7 Für die Datensicherheit ist bekanntlich

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

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

Handbuch für Redakteure

Handbuch für Redakteure Handbuch für Redakteure Erste Schritte... 1 Artikel erstellen... 2 Artikelinhalt bearbeiten... 3 Artikel bearbeiten... 3 Grunddaten ändern... 5 Weitere Artikeleigenschaften... 5 Der WYSIWYG-Editor... 6

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

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.

Mehr

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

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

3. GLIEDERUNG. Aufgabe:

3. GLIEDERUNG. Aufgabe: 3. GLIEDERUNG Aufgabe: In der Praxis ist es für einen Ausdruck, der nicht alle Detaildaten enthält, häufig notwendig, Zeilen oder Spalten einer Tabelle auszublenden. Auch eine übersichtlichere Darstellung

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 03: Swing Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in GUI-Programmierung Motivation Grundlagen von Swing Praxis: UI für

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

Outlook Erstellen einer E-Mail aus einer HTML - Vorlage INHALT

Outlook Erstellen einer E-Mail aus einer HTML - Vorlage INHALT Outlook Erstellen einer E-Mail aus einer HTML - Vorlage INHALT LADEN DER VORLAGE 2 Öffnen Sie Outlook 2 Klicken Sie auf EXTRAS >> OPTIONEN 2 Im Optionenfeld von Outlook folgend Sie den Schritten 2 Fenster

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

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

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Beschaffung mit. Auszug aus dem Schulungshandbuch: Erste Schritte im UniKat-System

Beschaffung mit. Auszug aus dem Schulungshandbuch: Erste Schritte im UniKat-System Beschaffung mit Auszug aus dem Schulungshandbuch: Erste Schritte im UniKat-System Stand: 31. Oktober 2014 Inhaltsverzeichnis 1 Erste Schritte im UniKat-System... 2 1.1 Aufruf des Systems... 2 1.2 Personalisierung...

Mehr

Visio 2013. Grundlagen. Linda York. 1. Ausgabe, Oktober 2013

Visio 2013. Grundlagen. Linda York. 1. Ausgabe, Oktober 2013 Visio 2013 Linda York 1. Ausgabe, Oktober 2013 Grundlagen V2013 2 Visio 2013 - Grundlagen 2 Einfache Zeichnungen erstellen In diesem Kapitel erfahren Sie wie Sie Shapes einfügen, kopieren und löschen was

Mehr

Benutzeranleitung Superadmin Tool

Benutzeranleitung Superadmin Tool Benutzeranleitung Inhalt 1 Einleitung & Voraussetzungen... 2 2 Aufruf des... 3 3 Konto für neuen Benutzer erstellen... 3 4 Services einem Konto hinzufügen... 5 5 Benutzer über neues Konto informieren...

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

ÖKB Steiermark Schulungsunterlagen

ÖKB Steiermark Schulungsunterlagen ÖKB Steiermark Schulungsunterlagen Fotos von Online-Speicher bereitstellen Da das hinzufügen von Fotos auf unsere Homepage recht umständlich und auf 80 Fotos begrenzt ist, ist es erforderlich die Dienste

Mehr

Kostenstellen verwalten. Tipps & Tricks

Kostenstellen verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

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

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY Vorteile der Verwendung eines ACTIVE-DIRECTORY Automatische GEORG Anmeldung über bereits erfolgte Anmeldung am Betriebssystem o Sie können sich jederzeit als

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

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

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Programm GArtenlisten. Computerhinweise

Programm GArtenlisten. Computerhinweise Programm GArtenlisten Computerhinweise Liebe/r Vogelbeobachter/in, anbei haben wir Ihnen ein paar wichtige Tipps für ein reibungsloses Funktionieren der mitgelieferten Ergebnisdatei auf Ihrem Computer

Mehr

Handbuch ECDL 2003 Basic Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Handbuch ECDL 2003 Basic Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen Handbuch ECDL 2003 Basic Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen Dateiname: ecdl2_05_03_documentation.doc Speicherdatum: 16.03.2005 ECDL 2003 Modul 2 Computermanagement

Mehr

Verwalten und Organisieren von Fotos,

Verwalten und Organisieren von Fotos, Verwalten und Organisieren von Fotos, Datensicherung auf einen externen Datenträger durchführen, Datensicherung auf externe Datenträger - Datensicherheit Grundsätze 02 - Sicherungsmethode / FreeCommander

Mehr

Satzhilfen Publisher Seite Einrichten

Satzhilfen Publisher Seite Einrichten Satzhilfen Publisher Seite Einrichten Es gibt verschiedene Möglichkeiten die Seite einzurichten, wir fangen mit der normalen Version an, Seite einrichten auf Format A5 Wählen Sie zunächst Datei Seite einrichten,

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

DOKUMENTATION VOGELZUCHT 2015 PLUS

DOKUMENTATION VOGELZUCHT 2015 PLUS DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP

Mehr

Hilfe zur Verwendung digitaler Formulare

Hilfe zur Verwendung digitaler Formulare Übersicht A) Allgemeines Seite 1 B) Antragstellung / Auswahl der Formulare Seite 1 Aufruf der Formulare Seite 1 Bearbeiten/Ausfüllen der Formulare Seite 2 C) Einreichen/Weiterleiten Seite 4 A) Allgemeines

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Navigieren auf dem Desktop

Navigieren auf dem Desktop Navigieren auf dem Desktop Sie kennen Windows 7 noch nicht? Obwohl Windows 7 viel mit den Versionen von Windows gemein hat, die Ihnen ggf. bereits vertraut sind, werden Sie möglicherweise an der einen

Mehr

Handbuch für Redakteure

Handbuch für Redakteure Handbuch für Redakteure Erste Schritte... 1 Artikel erstellen... 2 Artikelinhalt bearbeiten... 3 Artikel bearbeiten... 3 Trennen der Druck- und der Online-Version.. 4 Grunddaten ändern... 5 Weitere Artikel-eigenschaften...

Mehr

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen Dateiname: ecdl6_05_01_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 6 Präsentation - Diagramm

Mehr

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014. inkl. zusätzlichem Übungsanhang K-W81-G-UA

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014. inkl. zusätzlichem Übungsanhang K-W81-G-UA Markus Krimm, Peter Wies 1. Ausgabe, Januar 2014 Windows 8.1 Grundkurs kompakt inkl. zusätzlichem Übungsanhang K-W81-G-UA 1.3 Der Startbildschirm Der erste Blick auf den Startbildschirm (Startseite) Nach

Mehr

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.

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

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr