GUI-Programmierung in Java
|
|
- Kora Dresdner
- vor 8 Jahren
- Abrufe
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 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
MehrJava 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
MehrEinfü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
MehrZentrale 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
MehrGraphische 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
MehrGUI 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
MehrGRAFISCHE 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
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:
MehrKap. 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.
MehrEinstieg 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
Mehr2A 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
MehrSuche 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
MehrGUI-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
MehrSwing 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
MehrWichtige 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
MehrProgrammieren 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
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:
MehrGUI 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
MehrGrafische 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,
MehrBenutzeroberflä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
MehrWindows 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
MehrHochschule 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:
MehrObjektorientierte 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/
MehrEine 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
MehrJava: 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
MehrNewsletter. 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...
MehrGrundlagen 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
MehrInstitut 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
MehrFachbericht 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
MehrVerhindert, 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:
MehrProfessionelle 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
MehrOffice-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,
MehrHandbuch 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
MehrErstellen 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
MehrDiese 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,
MehrHandbuch 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
MehrInstallation 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
MehrEinfü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
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:
MehrAbteilung 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
MehrMit 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
MehrKleines 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
MehrAnleitung 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
MehrSafeRun-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.
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
MehrBedienungsanleitung. 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
MehrHilfe 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,
Mehr1. 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
MehrSICHERN 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
MehrOutlook. 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
MehrObjektorientierte 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
MehrHandbuch 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
MehrDrei-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
MehrVirtueller 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,
MehrAnleitung 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
MehrEinfü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.
MehrEreignisbehandlung 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
MehrAGROPLUS 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
Mehr3. 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
MehrHandbuch 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
MehrJavakurs 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
MehrMORE 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
MehrKapitel 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
MehrOutlook 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
MehrStellen 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.
MehrWindows. 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
Mehrmysql - 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
Mehr5.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
MehrBeschaffung 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...
MehrVisio 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
MehrBenutzeranleitung 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...
MehrDie 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 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
MehrKostenstellen 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
MehrSoftware 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
MehrDesign 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
MehrGEORG.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
MehrErstellen 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
MehrGrafikausgabe 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
MehrHANDBUCH 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
MehrAbamsoft 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
MehrTutorial - 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
MehrProgramm 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
MehrHandbuch 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
MehrVerwalten 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
MehrSatzhilfen 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,
MehrSANDBOXIE 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:
MehrDOKUMENTATION 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
MehrHilfe 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
MehrEs 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
MehrNavigieren 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
MehrHandbuch 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...
MehrHandbuch 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
MehrWindows 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
Mehr1. 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.
MehrJava 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
MehrBilder 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
MehrLeitfaden 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