Entwicklung von E-Learning Komponenten zur Computergrafik
|
|
- Gerrit Falk
- vor 8 Jahren
- Abrufe
Transkript
1 F Entwicklung von E-Learning Komponenten zur Computergrafik Development of E-learning components for computer graphics Markus Stollenwerk, Rainer Friesen und Daniel Valentin Master Projektstudium Betreuer: Prof. Dr. Ing. Fritz Nikolai Rudolph Trier,
2 Kurzfassung Ziel dieses Tutorials ist es die grundlegenden Techniken der Computergrafik zu erklären. Dazu werden zunächst die Grundlagen der Programmiersprachen Java und C# erklärt. Diese Grundlagen befassen sich mit dem Erstellen von grafischen Benutzeroberflächen und der Verwendung von diesen. Ein weiterer Bereich beschäftigt sich mit den verschiedenen Arten von Softwarepatterns bzw. Softwareentwurfsmustern. Hier werden exemplarisch die wichtigsten Entwurfsmuster erläutert. Im letzten Abschnitt wird die Verwendung der Java2D Umgebung erklärt. Dies beinhaltet die grundliegende Möglichkeit zu Zeichnen und diese Zeichnungen zu manipulieren. Des Weiteren wird auf die Verwendung von Schriften und Transparenz eingegangen.
3 Inhaltsverzeichnis 1 Einleitung Grundlagen Java Fenster und grafische Oberflächen Erstellen eines JFrames Hinzufügen von grafischen Elementen Anordnen von Objekten mit Layouts Verwenden von Listenern Erstellen von Menüleisten Applets GUI Elemente Buttons Textelemente Slider ComboBox Menüs Listen Bäume weitere GUI Elemente Grundlagen C# Erstellung eines Projekts in Visual Studio Verweise Fenster und GUI-Elemente Beispiel 1 - ein einfaches Fenster in C# Beispiel 2 - Buttons und EventHandler Beispiel 3 - Labels Beispiel 4 - Maus-Events Beispiel 5 - Web-Browser Beispiel 6 - Menü- und Statusbars Beispiel 7 - ComboBox Beispiel 8 - MDI Beispiel 9 - Radiobuttons und Checkboxen
4 Inhaltsverzeichnis IV Beispiel 10 - TreeView Grundlagen Patterns Observer Pattern MVC Pattern Singleton Pattern State Pattern Factory Pattern Grundlagen Java 2D Zeichnen Zeichnen vor Java2D Zeichnen mit Java2D Translation, Rotation und Skalierung Fonts Transparenz D-Grafik in C# Einführung D-Grafik in C# Initialisierung des Grafikkontexts Beispiel 1 - Die erste 2D-Grafik Beispiel 2 - Ellipsen und Rechtecke Beispiel 3 - Brushes Beispiel 4 - Polygone Beispiel 5 - GraphicsPath Beispiel 6 - Transformationen Einführung Splines Splines 1 - Hermite-Splines Splines 2 - Bézier-Splines Splines 3 - Cardinal Splines Fonts in C# Bitmaps in C# Literatur
5 Abbildungsverzeichnis 2.1 JFrames stellen die Fenster in Java dar JFrame, bei welchem die Größe mit pack automatisch angepasst wird Der zweite JButton überschreibt den ersten JButton im JFrame Ein FlowLayout ordnet die JLabels nebeneinander an Ein GridLayout ordnet die JLabels wie in einem Gitter an Ein BorderLayout ordnet die JPanels so an, dass ein Zentrum und ein Rand entstehen Verwendung eines BoxLayouts zur Erstellung eines Login-Bildschirms Mit einem GridBagLayout kann man komplexere grafische Oberflächen erstellen Das CardLayout ist das einzige Layout in Java, welches Interaktionen des Benutzers zulässt Eine Menüleiste, wie sie in fast jedem Programm vorkommt Hello World Applet in einem Webbrowser Anzeige der verschiedenen Meilensteine Ansicht eines Frames aus einem JApplet Ansicht der verschiedenen Buttons SicherePassworteingabe Slider und ComboBox Menüs und Listen Ein Baum Neues Projekt Verweise Beispielprogramm frames Anwendung Frames Anwendung Frames Anwendung Frames Anwendung Frames Menüaufbau Anwendung Frames Anwendung Frames
6 Abbildungsverzeichnis VI 3.11 Anwendung Frames TreeView Anwendung Frames Observer-Pattern Model-View-Control-Pattern Singleton-Pattern State-Pattern Automatenmodell eines Toröffners Ausgabe des Programms Draw Ausgabe des Programms Draw Transition des Rechtecks Ausgabe des Programms Font Ausgabe des Programms Transparency Neue Windows Form Beispielprogramm Beispielprogramm Beispielprogramm Beispiel GraphicsPath Rotation eines GraphicsPath Bezier-Kurve Hermite-Kurve Bezierkurve Auswirkung des Tensionwerts Cardinal Splines Fonts in C# Bitmaps in C#
7 1 Einleitung Ziel dieser Ausarbeitung ist es, einen Einblick in die Verwendung der Computergrafik zu geben. In der heutigen Zeit gibt es immer mehr Anwendungsgebiete für die Computergrafik. Angefangen bei der computerunterstützten Designarbeit über die Spiele-Industrie bis hin zu der Entwicklung von Grafiken für Bilder und Filme. Bei all diesen Aufgaben werden die Grundlagen der Computergrafik benötigt. Um zu diesen komplexen Themengebieten einen Einstieg zu finden werden zunächst die grundlegenden Funktionen der Programmiersprachen Java und C# erläutert. Im ersten Kapitel Grundlagen Java werden die ersten Schritte bei der Programmierung einer grafischen Benutzeroberfläche mit Java beschrieben. Dazu gehört als erstes das Erstellen eines Fensters mit Hilfe eines JFrames, das Hinzufügen von grafischen Elementen und Anordnen mit Hilfe von LayoutManagern, sowie die Verwendung von Listenern und Menülistenern. Der zweite Schritt beim Umgang mit Java ist die Verwendung von Applets. Dazu gehören der allgemeine Aufbau eines Applets und die Einbindung in eine Webseite. Der dritte Abschnitt befasst sich mit den verschiedenen, in Java verfügbaren, GUI-Elementen. Hier werden die Funktionsweise und die Verwendung beschrieben. Bei den GUI-Elementen handelt es sich um die verschiedenen Arten von Buttons, Textbausteinen und anderen grafischen Ein- und Ausgabemöglichkeiten. Das zweite Kapitel Grundlagen C# gibt einen Einblick in den Umgang mit der Programmiersprache C#. Dazu wird zunächst erklärt wie mit Hilfe der Entwicklungsumgebung Visual Studio neue Projekte erstellt werden können. Daran schließt sich eine Einführung in die ersten Schritte beim Umgang mit C# an. Als letzter Abschnitt in diesem Kapitel werden die verschiedenen Fenster und GUI- Elemente erklärt. Dazu zählen neben den Standardelementen, wie Buttons und Labels, auch Besonderheiten wie der Webbrowser. Zusätzlich wird hier der Umgang mit Mausevents sowie Menüs und Statusanzeigen erläutert. Das nächste Kapitel Grundlagen Patterns beschäftigt sich mit den wichtigsten Entwurfsmustern in der Softwareentwicklung. Dazu wird der Aufbau und die Verwendung der Entwurfsmuster Observer, Model-View-Control, Singleton, State
8 1 Einleitung 2 sowie Factory beschrieben. Im letzten Kapitel Grundlagen Java2D wird der Umgang mit der Java2D Umgebung beschrieben. Dazu wird in einem ersten Schritt ein Vergleich zwischen dem Zeichnen vor und nach Java2D gezogen. Im weiteren Verlauf werden die Möglichkeiten bei der Grafikprogrammierung mit Java2D aufgezeigt. Dazu gehört als einer der wichtigsten Punkte die Möglichkeit der Bildmanipulation durch Translation, Rotation und Skalierung. Als Abschluss wird dann noch auf die Verwendung von Schriften eingegangen und das Konzept der Transparenz erläutert.
9 2 Grundlagen Java 2.1 Fenster und grafische Oberflächen Im folgenden Abschnitt wird gezeigt, wie man mit Java eigene Fenster erstellt und komplette grafische Benutzeroberflächen aufbaut. Dazu gehört die Erzeugung von Buttons, Listen etc. und das Einfügen dieser Objekte in ein Fenster, sowie die Verwendung von Listenern, zum Abfangen von Benutzereingaben. Dazu werden die Java-Packages javax.swing und java.awt verwendet. Es ist also in jedem Beispiel nötig diese Packages oder zumindest Teile davon zu importieren, da diese die wichtigsten Elemente einer grafischen Oberfläche zur Verfügung stellen. Um weitere Informationen und Hilfe zu erhalten, ist es sehr hilfreich einen Blick in das Java Swing Tutorial [SUNb] zu werfen Erstellen eines JFrames In der Abbildung 2.1 sieht man ein JFrame, aus dem Package javax.swing. Dieses JFrame stellt ein Fenster dar, wie es üblicherweise in den heutigen Betriebssystemen verwendet wird um grafische Oberflächen zu erzeugen. Abbildung 2.1. JFrames stellen die Fenster in Java dar
10 2.1 Fenster und grafische Oberflächen 4 Ein solches JFrame zu Erstellen ist ziemlich simpel. Man erstellt einfach ein Objekt der Klasse JFrame und führt die passenden Methoden zum Konfigurieren des JFrames aus. Zuerst sollte man eine Klasse mit beliebigem Namen und einer Main-Methode erstellen. Zusätzlich muss man noch die Klasse JFrame importieren, welche sich in dem Package javax.swing befindet. Als nächstes sollte man dann das JFrame-Objekt erstellen und konfigurieren. Dies geschieht mit dem folgenden Quellcode. public static void main ( S t r i n g [ ] args ){ JFrame frm = new JFrame ( ) ; frm. s e t T i t l e ( JFrame mit s e t S i z e ( ) ) ; frm. s e tdefaultcloseoperation ( JFrame. EXIT ON CLOSE ) ; frm. s e t S i z e ( 3 0 0, ) ; frm. s e t L o c a t i o n ( 5 0, 5 0 ) ; frm. s e t V i s i b l e ( true ) ; Hier wird ein JFrame-Objekt erstellt und danach dessen Titel eingestellt. Der Titel ist der Text der in der oberen Fensterleiste erscheint. Der Methode setdefaultcloseoperation wird dann noch die Konstante JFrame.EXIT ON CLOSE übergeben. Diese sorgt dafür, dass das komplette Programm beendet wird, wenn man das Fenster schließt. Es gibt unterschiedliche Konstanten, welche verwendet werden können um verschiedene Effekte beim Schließen eines Fensters zu erzeugen. JFrame.DO NOTHING ON CLOSE Beim Schließen passiert einfach nichts. JFrame.EXIT ON CLOSE Beendet das Programm, wenn man dieses Fenster schließt. JFrame.HIDE ON CLOSE (Standard bei JFrame und JDialog) Versteckt das Fenster anstatt es zu schließen. JFrame.DISPOSE ON CLOSE (Standard bei JInternalFrame) Verwirft das Fenster komplett und entfernt es aus dem Speicher. Nachdem nun die defaultcloseoperation festgelegt wurde stellen wir noch die Größe und die Position des Fensters mit den Methoden setsize() und setlocation() ein. Der Methode setsize() kann man entweder zwei int-werte für Breite und Höhe übergeben oder ein Dimension-Objekt. Die Methode setlocation() erhält als Parameter zwei int-werte oder ein Objekt der Klasse Point.
11 2.1 Fenster und grafische Oberflächen 5 Zu guter Letzt wird das Fenster dann noch angezeigt. Dies geschieht mit dem Aufruf setvisible(true). Der Beispielquellcode für dieses Beispiel kann auch noch einmal in der Datei FrameCreator01.java gefunden werden. Wenn er kompiliert und gestartet wird, wird das Fenster aus der Abbildung 2.1 erzeugt. Man sieht also, dass man mit minimalem Aufwand ein Fenster erstellen kann. In diesem Fall wurde jedoch nur ein sehr einfaches JFrame erstellt und dieses mit den dazugehörigen Methoden verändert. Üblicherweise erzeugt man jedoch eine eigene Fensterklasse, von welcher man dann auch mehrere Instanzen erstellen kann. Dazu schreibt man eine neue Klasse, welche von der Klasse JFrame erbt und passt dann in dieser Klasse, beispielsweise im Konstruktor, die jeweiligen Einstellungen an. Das ganze sieht dann folgendermaßen aus. import javax. swing. JFrame ; / E r s t e l l e n e i n e s Fensters mit e i n e r automatischen Groesse / c l a s s MyFrame extends JFrame{ public MyFrame(){ // Einen T i t e l e i n s t e l l e n super ( JFrame mit pack ( ) ) ; / Das JFrame so e i n s t e l l e n, dass das Programm beim S c h l i e ß e n des JFrames beendet wird / s e tdefaultcloseoperation ( JFrame. EXIT ON CLOSE ) ; // Groesse wird automatisch angepasst pack ( ) ; // Die P o s i t i o n e i n s t e l l e n s e t L o c a t i o n ( 5 0, 5 0 ) ; //Das JFrame anzeigen s e t V i s i b l e ( true ) ;
12 2.1 Fenster und grafische Oberflächen 6 public c l a s s FrameCreator02{ public static void main ( S t r i n g [ ] args ){ new MyFrame ( ) ; In diesem Beispiel wird die neue Klasse MyFrame erstellt, welche von JFrame erbt. In ihrem Konstruktor wird der Superkonstruktor, also der Konstruktor der Klasse JFrame, aufgerufen um den Titel einzustellen. Danach werden, wie im vorherigen Beispiel, die Einstellungen für das JFrame vorgenommen, indem die vererbten Methoden verwendet werden. Eine kleine Änderung wurde jedoch noch zusätzlich vorgenommen. Statt der Methode setsize() verwenden wir, in diesem Beispiel die parameterlose Methode pack(), welche eine Methode der Oberklasse Window (java.awt.window) ist, von welcher JFrame erbt. Die Methode pack() passt die Größe des Fensters automatisch so an, dass alle Elemente des JFrames hineinpassen aber trotz allem das Fenster möglichst klein ist. In unserem Beispiel (siehe Abb.2.2), sieht man nur die Titelleiste, da sich kein anderes Element auf dem Fenster befindet. Abbildung 2.2. JFrame, bei welchem die Größe mit pack automatisch angepasst wird. Der Quellcode zu diesem Beispiel befindet sich in der Datei FrameCreator02.java und kann ebenfalls kompiliert und ausgeführt werden Hinzufügen von grafischen Elementen Im vorherigen Abschnitt wurde nun erläutert, wie man ein eigenes Fenster erstellt, in der Größe verändert und anzeigt. In der folgenden Passage wird nun gezeigt wie man ein grafisches Element zu diesem Fenster hinzufügt. Welche verschiedenen grafischen Elemente es in Java gibt wird in einem späteren Abschnitt näher erläutert (Abschnitt 2.3). Jedes JFrame in Java besitzt ein so genanntes ContentPane. Das ContentPane ist ein Container, in welchen man verschiedene grafische Elemente einfügen kann. Zu diesen Elementen gehören Buttons, Textfelder, sowie andere Container, welche wiederum Elemente enthalten können. Um nun auf das ContentPane zugreifen zu können, kann man ganz einfach die Methode getcontentpane, des JFrames verwenden. Das passende ContentPa-
13 2.1 Fenster und grafische Oberflächen 7 ne kann dann dazu verwendet werden um Elemente aufzunehmen, welche auf dem JFrame angezeigt werden sollen. Das Hinzufügen eines Elements wird durch die Methode add(component comp) ausgeführt. Der folgende Quellcode zeigt wie man ein Element erstellt, welches man hinzufügen kann und wie man es dann auch dem ContentPane übergibt. In diesem Beispiel handelt es sich bei dem Objekt um einen JButton, einen Knopf, auf welchen man klicken kann. import java. awt. event. ActionEvent ; import java. awt. event. A c t i o n L i s t e n e r ; import javax. swing. JButton ; import javax. swing. JFrame ; import javax. swing. JOptionPane ; / Hinzufügen e i n e s Buttons in ein JFrame und verwenden e i n e s L i s t e n e r s / class MyButtonFrame extends JFrame implements A c t i o n L i s t e n e r { public MyButtonFrame (){ super ( JFrame mit Button ) ; s e tdefaultcloseoperation ( JFrame. EXIT ON CLOSE ) ; / E r s t e l l e n e i n e s JButtons mit e i n e r B e s c h r i f t u n g / JButton btn = new JButton ( Drück mich ) ; btn. addactionlistener ( this ) ; / Einfügen des Buttons auf das ContentPane d e s JFrames / getcontentpane ( ). add ( btn ) ; pack ( ) ; s e t L o c a t i o n ( 5 0, 5 0 ) ; s e t V i s i b l e ( true ) ;
14 2.1 Fenster und grafische Oberflächen 8 public void actionperformed ( ActionEvent evt ){ JOptionPane. showmessagedialog ( null, Der Button f u n k t i o n i e r t!, Button f u n k t i o n i e r t, JOptionPane.INFORMATION MESSAGE) ; public c l a s s FrameCreator03 { public static void main ( S t r i n g [ ] args ){ new MyButtonFrame ( ) ; Zuerst wird wieder der Standardkonstruktor von JFrame aufgerufen, um den Titel einzustellen und es wird die DefaultCloseOperation eingerichtet (wie in Abschnitt beschrieben). Daraufhin wird ein neuer JButton erstellt und diesem wird ein ActionListener, welcher in der gleichen Klasse implementiert wurde, übergeben. Nähere Informationen zu Listenern werden im Abschnitt dargestellt. Durch diesen ActionListener wird die Methode actionperformed(actionevent evt) ausgeführt, sobald der Benutzer auf den Knopf drückt und es wird ein JOptionPane angezeigt, welches eine Meldung ausgibt. Nachdem nun der JButton erstellt wurde, wird er noch zu dem Fenster hinzugefügt. Um dies durchzuführen nimmt sich das Programm, mit der Methode getcontentpane(), das Container-Objekt des JFrames und fügt mit der Methode add(btn) den JButton zu dem Fenster hinzu. Danach wird wie bereits erklärt, dass Fenster in der Größe angepasst und angezeigt Anordnen von Objekten mit Layouts Wenn man nicht nur ein einzelnes grafisches Element, sondern gleich mehrere zu einem JFrame hinzufügen möchte, muss man so genannte Layouts verwenden. Layouts sind Strukturen, welche grafische Elemente in einem JFrame oder einer anderen Containerklasse so anordnen, wie man es gerne möchte. Ohne diese Layouts ist es beispielsweise nicht möglich, Buttons o.ä. nebeneinander anzuordnen oder sie in einer anderen Anordnung auf einem JFrame zu verteilen. Würde man beispielsweise den folgenden Quellcode in einem Programm einfügen, würde nur der zuletzt hinzugefügte Button angezeigt werden. Das Programm würde zuerst den ersten Button einfügen und der zweite würde diesen dann überzeichnen (Abb. 2.3).
15 2.1 Fenster und grafische Oberflächen 9 // E r s t e l l e n der JButtons mit e i n e r B e s c h r i f t u n g JButton btn = new JButton ( Drück mich ) ; btn. addactionlistener ( this ) ; JButton btn2 = new JButton ( Button 2 ) ; btn2. addactionlistener ( this ) ; // Einfügen der Buttons auf das ContentPane des JFrames getcontentpane ( ). add ( btn ) ; getcontentpane ( ). add ( btn2 ) ; Abbildung 2.3. Der zweite JButton überschreibt den ersten JButton im JFrame. Um eine möglichst große Vielfalt an verschiedenen grafischen Oberflächen zu ermöglichen gibt es unterschiedliche Arten von Layouts, welche man verwenden und auch kombinieren kann. Die einzelnen Layouts werden in den folgenden Abschnitten näher erläutert und es wird gezeigt, welche Art von Oberflächen man mit welchem Layout erstellen kann. Die Quellcodes der Beispielprogramme, in den folgenden Layoutabschnitten sind in den Dateien FrameCreator4.java bis Frame- Creator9.java enthalten. FlowLayout Das erste Layout, welches hier vorgestellt wird, ist das so genannte FlowLayout. Dieses ermöglicht Objekte nebeneinander zu platzieren. Um das FlowLayout zu verwenden kann man genauso vorgehen, wie in den Kapiteln zuvor beschrieben. Der einzige Unterschied besteht darin, dass man dem Container des JFrames ein FlowLayout zuweist. Dies geschieht über die Methode setlayout(layout) des jeweiligen Containers. Im folgenden Quellcode sieht man eine passende Anwendung, welche zeigt wie man ein Layout einstellt und danach mehrere JLabels zu dem Container hinzufügt. JLabels sind Objekte, welche einen einfachen Text anzeigen können.
16 2.1 Fenster und grafische Oberflächen 10 import java. awt. FlowLayout ; import javax. swing. JFrame ; import javax. swing. JLabel ; / Hinzufügen mehrerer Labels mit H i l f e e i n e s FlowLayouts / c l a s s FlowLayoutFrame extends JFrame{ public FlowLayoutFrame (){ super ( FlowLayout ) ; s e tdefaultcloseoperation ( JFrame. EXIT ON CLOSE ) ; // E i n s t e l l e n e i n e s FlowLayouts getcontentpane ( ). setlayout (new FlowLayout ( ) ) ; // Hinzufügen von e i n i g e n JLabels JLabel l b l ; for ( int i =0; i <5; i ++){ l b l = new JLabel ( JLabel + ( i +1)); getcontentpane ( ). add ( l b l ) ; pack ( ) ; s e t L o c a t i o n ( 5 0, 5 0 ) ; s e t V i s i b l e ( true ) ; public c l a s s FrameCreator04 { public static void main ( S t r i n g [ ] args ){ new FlowLayoutFrame ( ) ; Der gezeigte Quellcode unterscheidet sich nur in wenigen Punkten von dem Quellcode aus dem Abschnitt Zum Einen werden hier keine JButtons, sondern JLabels hinzugefügt und zum Anderen wird hier, wie oben beschrieben, ein Layout mit new FlowLayout() erstellt und dieses dem Container des JFrames übergeben. Dieses Layout regelt dann selbstständig die Anordnung der einzelnen, mit der For-Schleife erstellten, JLabels. Ein passendes Bild, welches solch ein Flow- Layout zeigt, ist die Abbildung 2.4.
17 2.1 Fenster und grafische Oberflächen 11 Abbildung 2.4. Ein FlowLayout ordnet die JLabels nebeneinander an. GridLayout Das GridLayout ist dem FlowLayout sehr ähnlich. Der eigentliche Unterschied besteht darin, dass man sich die Anordnung nicht als Linie vorstellen sollte, wie bei dem FlowLayout, sondern als Gitter. Daher kommt auch der Name des Grid- Layouts. In dem GridLayout können alle Objekte in einer Art Raster oder Gitter angeordnet werden, wobei man die Anzahl der Spalten und Zeilen angeben kann. Dabei muss man nur eine sehr kleine Änderung am Quellcode des FlowLayouts, aus dem Abschnitt 2.1.3, vornehmen. Es wird einfach statt dem FlowLayout ein GridLayout an die Methode setlayout(layout) übergeben. Des Weiteren kann über den Konstruktor des GridLayouts angegeben werden, wieviele Spalten und Zeilen das Raster haben soll. Der erste Wert gibt die Anzahl der Zeilen an und der zweite Wert logischerweise die Anzahl der Spalten. Übergibt man den Wert 0 an den Konstruktor werden endlos viele Spalten bzw. Zeilen verwendet. Der Aufruf der setlayout(layout) Methode sieht dann folgendermaßen aus. getcontentpane ( ). setlayout (new GridLayout ( 2, 3 ) ) ; Ein Screenshot von solch einem GridLayout Beispielprogramm zeigt die Abbildung 2.5. Abbildung 2.5. Ein GridLayout ordnet die JLabels wie in einem Gitter an. BorderLayout Das BorderLayout ist etwas komplexer als die bisher vorgestellten Layouts. Es wird normalerweise nicht dazu verwendet JButtons oder JLabels anzuordnen. Stattdessen fügt man in einen Container, welcher ein BorderLayout verwendet, normalerweise JPanels ein. Ein JPanel ist wiederum ein Container, ähnlich wie das ContentPane eines JFrames. In solch ein JPanel kann man also wiederum JButtons oder JLabels etc. einfügen. Im folgenden Beispielprogramm sieht man wie man ein BorderLayout dazu verwendet um JPanels anzuordnen. Dabei besteht ein BorderLayout immer aus einem Zentrum und vier Rändern. Der Quellcode zeigt wie man einzelne JPanels, in den
18 2.1 Fenster und grafische Oberflächen 12 einzelnen Bereichen anordnet. Dabei wird der zweite Übergabewert der add()- Funktion eines Containers verwendet. An diesen wird eine Konstante übergeben, welche in der Klasse BorderLayout definiert ist und angibt, wo sich ein grafisches Elemente befindet. Es gibt die Konstanten CENTER, NORTH, EAST, SOUTH und WEST. Dabei bedeutet beispielsweise die Konstante NORTH, dass das jeweilige Objekt am nördlichen Rand eingefügt werden soll. import java. awt. BorderLayout ; import java. awt. Color ; import javax. swing. JFrame ; import javax. swing. JLabel ; import javax. swing. JPanel ; / Hinzufügen von JPanels und JLabels und verwenden e i n e s BorderLayout / c l a s s BorderLayoutFrame extends JFrame{ public BorderLayoutFrame (){ super ( BorderLayout ) ; s e tdefaultcloseoperation ( JFrame. EXIT ON CLOSE ) ; // E i n s t e l l e n e i n e s BorderLayouts getcontentpane ( ). setlayout (new BorderLayout ( ) ) ; Color [ ] c o l o r s = { Color.RED, Color.BLUE, Color.YELLOW, Color.GREEN, Color.ORANGE ; S t r i n g [ ] s t r i n g s = { Center, Norden, Osten, Süden, Westen ; S t r i n g [ ] p o s i t i o n s = { BorderLayout.CENTER, BorderLayout.NORTH, BorderLayout.EAST,
19 2.1 Fenster und grafische Oberflächen 13 BorderLayout.SOUTH, BorderLayout.WEST ; // E r s t e l l e n der JPanels und der JLabels JPanel panel ; JLabel l b l ; for ( int i =0; i <5; i ++){ panel = new JPanel ( ) ; panel. setbackground ( c o l o r s [ i ] ) ; l b l = new JLabel ( s t r i n g s [ i ] ) ; panel. add ( l b l ) ; getcontentpane ( ). add ( panel, p o s i t i o n s [ i ] ) ; s e t S i z e ( 4 0 0, ) ; s e t L o c a t i o n ( 5 0, 5 0 ) ; s e t V i s i b l e ( true ) ; public c l a s s FrameCreator06 { public static void main ( S t r i n g [ ] args ){ new BorderLayoutFrame ( ) ; In diesem Beispiel werden die Hintergrundfarben der JPanels in verschiedenen Farben angezeigt, um deutlich zu machen, wo sich welches JPanel befindet. Dazu wird ein Array colors erstellt, welches verschiedene Farben enthält. Des Weiteren wird ein Array positions mit Strings erstellt, welche die Positionen der JPanels beinhalten. Danach werden dann mit einer For-Schleife neue JPanels erstellt und diese in der passenden Farbe und an der passenden Position angezeigt. Hier sieht man gut, dass die Methode add(), in diesem Beispiel, zwei Argumente übergeben bekommt. Das erste ist das hinzuzufügende Objekt und das zweite die Position des Objekts in dem Container. Natürlich darf man auch hier nicht vergessen vorher das Layout einzustellen. Dies geht hier genauso wie bei dem FlowLayout oder dem GridLayout, indem man eine Instanz von BorderLayout an die Methode set- Layout(Layout) übergibt. Auch hier gibt es wieder eine Beispielabbildung (Abb. 2.6).
20 2.1 Fenster und grafische Oberflächen 14 Abbildung 2.6. Ein BorderLayout ordnet die JPanels so an, dass ein Zentrum und ein Rand entstehen. BoxLayout Ein so genanntes BoxLayout bietet dem Programmierer schon wesentlich mehr Gestaltungsmöglichkeiten, als alle bisher vorgestellten Layouts und lässt sich trotz dieser Möglichkeiten relativ einfach verwenden. Die grobe Ausrichtung aller Objekte in einem BoxLayout wird über Konstanten festgelegt. Dabei orientieren sich alle Objekte in einem Container, welcher ein BoxLayout verwendet, an einer horizontalen oder einer vertikalen Linie. Es gibt vier verschiedene Konstanten, welche verwendet werden können: X AXIS - Hier werden die Objekte von links nach rechts angeordnet Y AXIS - Hier werden die Objekte von oben nach unten angeordnet LINE AXIS - Diese Konstante existiert erst seit Java 1.4 und ordnet die Objekte von links nach rechts oder von rechts nach links an, je nachdem, welche Sprache im System eingestellt ist. Dabei haben bestimmte Sprachen eine umgekehrte Orientierung, im Vergleich mit der Konstanten X AXIS. PAGE AXIS - Diese Konstante existiert ebenfalls erst seit Java 1.4 und ordnet die Objekte von oben nach unten oder von unten nach oben an. Genau wie bei LINE AXIS gibt es hier eine sprachenabhängige Orientierung. Des Weiteren bietet ein BoxLayout die Möglichkeit leere Bereiche in einen Container einzufügen und somit die Objekte einfach anzuordnen. Es gibt hier drei verschiedene Arten von Objekten: RigidArea - Eine RigidArea bekommt eine Breite und Höhe übergeben, welche sie ausfüllen soll. Diese wird beispielsweise verwendet, wenn man zwischen zwei Objekten einen bestimmten Abstand einhalten möchte.
21 2.1 Fenster und grafische Oberflächen 15 Glue - Bei einem Glue kann es sich um einen horizontalglue oder um einen verticalglue handeln. Diese füllen soviel Platz aus, wie sie bekommen können. Box.Filler - Ein Filler kann eine minimale, maximale und eine gewünschte Größe besitzen. So kann man beispielsweise ein Objekt erstellen, welches mindestens 5 Pixel und höchstens 50 Pixel breit sein sollte. Im folgenden Quellcode sieht man ein kleines Beispielprogramm, welches ein Loginfenster darstellen soll. Es verwendet dazu zwei verschiedene Layouttypen. Zum Einen das BorderLayout, um die Trennung zwischen dem Hauptbereich und dem Bereich mit den JButtons durchzuführen und zum Anderen zwei BoxLayouts, welche den Hauptbereich und den Knöpfebereich am unteren Rand organisieren. import java. awt. BorderLayout ; import java. awt. Dimension ; import javax. swing. BorderFactory ; import javax. swing. Box ; import javax. swing. BoxLayout ; import javax. swing. JButton ; import javax. swing. JFrame ; import javax. swing. JLabel ; import javax. swing. JPanel ; import javax. swing. JPasswordField ; import javax. swing. JTextField ; / Hinzufügen von JPanels und JLabels und verwenden e i n e s BoxLayouts / c l a s s BoxLayoutFrame extends JFrame{ public BoxLayoutFrame (){ super ( BoxLayout ) ; s e tdefaultcloseoperation ( JFrame. EXIT ON CLOSE ) ; // BorderLayout f ü r das Fenster e i n s t e l l e n getcontentpane ( ). setlayout ( new BorderLayout ( ) ) ; / Hauptbereich des JFrames e i n s t e l l e n / // JPanel f ü r den Hauptbereich des JFrames JPanel mainpanel = new JPanel ( ) ;
22 2.1 Fenster und grafische Oberflächen 16 // BoxLayout f ü r das mainpanel e i n s t e l l e n mainpanel. setlayout ( new BoxLayout ( mainpanel, BoxLayout. PAGE AXIS ) ) ; // JLabels und J T e x t f i e l d s zur Eingabe JLabel l b l U s e r = new JLabel ( Login : ) ; JTextField txtuser = new JTextField ( User ) ; JLabel l b l P a s s = new JLabel ( Password : ) ; JPasswordField txtpass = new JPasswordField ( pass ) ; mainpanel. add ( l b l U s e r ) ; mainpanel. add ( Box. createrigidarea (new Dimension ( 0, 5 ) ) ) ; mainpanel. add ( txtuser ) ; mainpanel. add ( Box. createrigidarea (new Dimension ( 0, 5 ) ) ) ; mainpanel. add ( l b l P a s s ) ; mainpanel. add ( Box. createrigidarea (new Dimension ( 0, 5 ) ) ) ; mainpanel. add ( txtpass ) ; / Buttonbereich des JFrames e i n s t e l l e n / // JPanel f ü r d i e Buttons JPanel buttonpanel = new JPanel ( ) ; // BoxLayout f ü r das buttonpanel e i n s t e l l e n buttonpanel. setlayout ( new BoxLayout ( buttonpanel, BoxLayout. LINE AXIS ) ) ; //oben, l i n k s, unten, r e c h t s buttonpanel. setborder ( BorderFactory. createemptyborder ( 5, 0, 5, 0 ) ) ; // JButtons e r s t e l l e n
23 2.1 Fenster und grafische Oberflächen 17 JButton btnok = new JButton ( Ok ) ; JButton btncancel = new JButton ( Cancel ) ; buttonpanel. add ( Box. c r e a t e H o r i z o n t a l G l u e ( ) ) ; buttonpanel. add ( btnok ) ; buttonpanel. add ( Box. createrigidarea ( new Dimension ( 5, 0 ) ) ) ; buttonpanel. add ( btncancel ) ; // Hinzufügen der JPanels zum BorderLayout getcontentpane ( ). add ( mainpanel ) ; getcontentpane ( ). add ( buttonpanel, BorderLayout.SOUTH) ; s e t S i z e ( 2 2 0, ) ; s e t L o c a t i o n ( 5 0, 5 0 ) ; s e t V i s i b l e ( true ) ; public c l a s s FrameCreator07 { public static void main ( S t r i n g [ ] args ){ new BoxLayoutFrame ( ) ; Nachdem in dem Quellcode ein JFrame erstellt wurde und für das ContentPane des JFrames das BorderLayout eingestellt wurde, erstellt das Programm das JPanel mainpanel. Dieses bekommt über setlayout() ein BoxLayout zugewiesen. Der Konstruktor erhält dazu das JPanel, welches vom Layout organisiert werden soll, sowie die grobe Orientierung als Konstante. Danach werden die JLabels und das JTextField, sowie das JPasswordField erstellt, welche zur Texteingabe verwendet werden können. Danach werden sie zum mainpanel hinzugefügt und mit RigidAreas voneinander etwas abgetrennt. Die RigidAreas sorgen dafür, dass das Objekt, welches vorher eingefügt wurde 5 Pixel von dem Objekt entfernt liegt, welches danach eingefügt wird. Die selbe Prozedur wird für das buttonpanel durchgeführt, nur dass man hier eine horizontale Orientierung über den BoxLayout-Konstruktor einstellt und vor den JButtons einen horizontalglue einfügt. Dieser erstreckt sich über den kompletten nicht genutzten Bereich der vor den JButtons liegt. Des weiteren wird für
24 2.1 Fenster und grafische Oberflächen 18 das buttonpanel eine Border eingestellt. Dabei handelt es sich um einen Rand, welcher um alle Objekte des buttonpanels gezogen wird, so dass ein Abstand zwischen dem Rand des Fensters und dem mainpanel entsteht. Zu guter letzt werden dann noch die beiden JPanels in das JFrame eingefügt. Dabei kommt das mainpanel in den zentralen Bereich des BorderLayouts und das buttonpanel in den südlichen Bereich. Das Ergebnis wird in Abbildung 2.7 dargestellt. Abbildung 2.7. Verwendung eines BoxLayouts zur Erstellung eines Login- Bildschirms. GridBagLayout Das GridBagLayout ist wohl das Layout, welches am schwierigsten zu verwenden ist, jedoch bietet es dem Programmierer wohl die meisten Möglicheiten um grafische Elemente auszurichten. Dabei verwendet das GridBagLayout ein Gitter, ähnlich wie das GridLayout. Der Unterschied besteht jedoch darin, dass sich in einem GridBagLayout die Objekte über mehrere Gitterzellen erstrecken können. Dabei berechnet Java automatisch anhand der minimalen und maximalen Größen der Objekte wie hoch und breit die Zellen sein sollen. Zusätzlich kann man noch Constraints angeben, welche die Darstellung der einzelnen Objekte beeinflussen können. Anders als bei den bisher verwendeten Layouts wird hier nicht einfach das Layout zu einem Container hinzugefügt, sondern es wird noch weiterhin verwendet, um die Constraints zu jedem grafischen Objekt hinzufügen zu können. Es gibt folgende Constraints: gridx & gridy - Geben an in welcher Zelle ein grafisches Objekt seinen Ursprung besitzen soll. gridwidth & gridheight - Gibt an über wieviele Zellen sich ein Objekt erstrecken soll. weightx & weighty - Gibt an wie breit und hoch die Zelle im Vergleich zu den anderen ist.
25 2.1 Fenster und grafische Oberflächen 19 ipadx & ipady - Vergrößert ein Objekt in breite und/oder Höhe. Dabei ist die Vergrößerung ein Pixelwert und wird mit 2 multipliziert, da die Vergrößerung nach links und nach rechts bzw. nach oben und nach unten durchgeführt wird. fill - Falls ein Objekt kleiner ist als der Bereich den es ausfüllen soll kann man angeben wie es sich vergrößern soll um den Bereich auszufüllen. Es gibt die konstanten Werte NONE, HORIZONTAL, VERTICAL und BOTH, welche alles statische Konstanten der Klasse GridBagLayout sind. insets - Mit Insets kann man einen Rahmen um ein Objekt legen. Diesen Abstand hält das Objekt dann als Rand zu den Zellen ein in denen sich das Objekt befindet. anchor - Dieser Wert gibt an, an welcher Stelle sich ein Objekt in seinen Zellen befinden soll, wenn es kleiner als die Zellen ist. Es gibt neun Konstanten die übergeben werden können und die jeweils eine Ecke der Zelle oder das Zentrum darstellen. Die Konstanten sind FIRST LINE START, PAGE START, FIRST LINE END, LINE START, CENTER, LINE END, LAST LINE START, PAGE END und LAST LINE END, wobei beispielsweise FIRST LINE START oben links wäre und LAST LINE END unten rechts. Im folgenden Beispiel sieht man dann wie man das Layout nutzen kann. Wegen der Komplexität des Layouts sollte man aber am besten einfach mit dem Layout rumspielen um ein besseres Verständnis für dieses zu erhalten. import java. awt. GridBagConstraints ; import java. awt. GridBagLayout ; import java. awt. I n s e t s ; import javax. swing. JButton ; import javax. swing. JComboBox ; import javax. swing. JFrame ; import javax. swing. JLabel ; import javax. swing. JScrollPane ; import javax. swing. JTextArea ; import javax. swing. JTextField ; / Hinzufügen von JPanels und JLabels und verwenden e i n e s GridBagLayouts / c l a s s GridBagLayoutFrame extends JFrame{ public GridBagLayoutFrame (){ super ( GridBagLayout ) ; s e tdefaultcloseoperation ( JFrame. EXIT ON CLOSE ) ; // E i n s t e l l e n e i n e s GridBagLayouts
26 2.1 Fenster und grafische Oberflächen 20 GridBagLayout g b l = new GridBagLayout ( ) ; getcontentpane ( ). setlayout ( gbl ) ; Hier sieht man einen gewissen Unterschied zu den vorherigen Layouts. Es wird nicht nur eine Instanz von GridBagLayout erstellt, welche an die Methode set- Layout(Layout) übergeben wird. Es wird stattdessen auch eine Variable gbl vom Typ GridBagLayout erstellt, an welche die Instanz vorher übergeben wird. Dies ist nötig da man später noch öfters auf das GridBagLayout zugreifen muss. / Hier wird e i n GridBagConstraint O b j e k t e r s t e l l t / GridBagConstraints gbc = new GridBagConstraints ( ) ; / E i n s t e l l e n der Constraints und Hinzufügen der Objekte / // Label gbc. gridwidth = GridBagConstraints.REMAINDER; gbc. g r i d h e i g h t = 1 ; gbc. weightx = 1 ; gbc. weighty = 1 ; gbc. anchor = GridBagConstraints. LINE START ; // Konstruktor I n s e t s : oben, l i n k s, unten, r e c h t s gbc. i n s e t s = new I n s e t s ( 0, 0, 5, 0 ) ; JLabel label = new JLabel ( Autobörse : Kfz Verkauf ) ; gbl. s e t C o n s t r a i n t s ( label, gbc ) ; getcontentpane ( ). add ( label ) ; Hier sieht man nun wie ein Constraint erstellt wird. Dieser wird vor jedem Hinzufügen eines Objekts, in die grafische Oberfläche, eingestellt und für das jeweilige Objekt angepasst. Es wird beispielsweise die Anzahl der Zellen, welche das Objekt belegen soll über das Constraint eingestellt und auch das Gewicht sowie der Anker werden festgelegt. Zusätzlich wird mit gbc.insets ein Rand um das Objekt erstellt. Das einzufügende Objekt soll ein JLabel sein, welches erstellt wird und dann zu-
27 2.1 Fenster und grafische Oberflächen 21 sammen mit dem Constraint an das Layout übergeben wird. Zu guter letzt wird das Objekt dann in den Container des JFrames eingefügt. // Label gbc. gridwidth = 1 ; gbc. i n s e t s = new I n s e t s ( 0, 0, 0, 0 ) ; label = new JLabel ( Fahrzeugtyp : ) ; gbl. s e t C o n s t r a i n t s ( label, gbc ) ; getcontentpane ( ). add ( label ) ; //ComboBox f ü r Fahrzeugtyp gbc. gridwidth = GridBagConstraints.REMAINDER; gbc. f i l l = GridBagConstraints.HORIZONTAL; gbc. weightx = 3 ; gbc. i n s e t s = new I n s e t s ( 0, 5, 0, 5 ) ; S t r i n g [ ] strarray = { Sportwagen, Limosine, Coupe, Transporter, Bus, Lkw, Motorrad ; JComboBox cmbtype = new JComboBox( strarray ) ; gbl. s e t C o n s t r a i n t s (cmbtype, gbc ) ; getcontentpane ( ). add (cmbtype ) ; // Label gbc. gridwidth = 1 ; gbc. i n s e t s = new I n s e t s ( 0, 0, 0, 0 ) ; gbc. weightx = 1 ; label = new JLabel ( Beschreibung : ) ; gbl. s e t C o n s t r a i n t s ( label, gbc ) ; getcontentpane ( ). add ( label ) ; // TextArea f ü r d i e Beschreibung gbc. gridwidth = GridBagConstraints.REMAINDER; gbc. g r i d h e i g h t = 3 ; gbc. f i l l = GridBagConstraints.BOTH; gbc. weightx = 1 0 ;
28 2.1 Fenster und grafische Oberflächen 22 gbc. weighty = 1 0 ; gbc. i n s e t s = new I n s e t s ( 0, 5, 0, 5 ) ; JTextArea txtexpl = new JTextArea ( Beschreibung ) ; JScrollPane s c r o l l P a n e = new JScrollPane ( txtexpl ) ; s c r o l l P a n e. s e t V e r t i c a l S c r o l l B a r P o l i c y ( JScrollPane.VERTICAL SCROLLBAR ALWAYS) ; s c r o l l P a n e. s e t H o r i z o n t a l S c r o l l B a r P o l i c y ( JScrollPane.HORIZONTAL SCROLLBAR AS NEEDED) ; gbl. s e t C o n s t r a i n t s ( scrollpane, gbc ) ; getcontentpane ( ). add ( s c r o l l P a n e ) ; // Label gbc. gridwidth = 1 ; gbc. i n s e t s = new I n s e t s ( 0, 0, 0, 0 ) ; gbc. weightx = 1 ; gbc. weighty = 1 ; gbc. f i l l = GridBagConstraints.NONE; label = new JLabel ( P r e i s : ) ; gbl. s e t C o n s t r a i n t s ( label, gbc ) ; getcontentpane ( ). add ( label ) ; // T e x t f e l d f ü r den Preis gbc. gridwidth = GridBagConstraints.REMAINDER; gbc. f i l l = GridBagConstraints.HORIZONTAL; gbc. weightx = 3 ; gbc. i n s e t s = new I n s e t s ( 0, 5, 0, 5 ) ; JTextField t x t P r i c e = new JTextField ( 0,00 ) ; gbl. s e t C o n s t r a i n t s ( txtprice, gbc ) ; getcontentpane ( ). add ( t x t P r i c e ) ; // Buttons gbc. gridwidth = 1 ; gbc. i n s e t s = new I n s e t s ( 0, 0, 0, 0 ) ; gbc. weightx = 1 ; gbc. weighty = 1 ; gbc. f i l l = GridBagConstraints.NONE; JButton btnsend = new JButton ( Senden ) ; gbl. s e t C o n s t r a i n t s ( btnsend, gbc ) ; getcontentpane ( ). add ( btnsend ) ;
29 2.1 Fenster und grafische Oberflächen 23 JButton btncancel = new JButton ( Abbrechen ) ; gbl. s e t C o n s t r a i n t s ( btncancel, gbc ) ; getcontentpane ( ). add ( btncancel ) ; s e t S i z e ( 3 0 0, ) ; s e t L o c a t i o n ( 5 0, 5 0 ) ; s e t V i s i b l e ( true ) ; public c l a s s FrameCreator08 { public static void main ( S t r i n g [ ] args ){ new GridBagLayoutFrame ( ) ; Die gesamte Prozedur wird für jedes Objekt, der grafischen Oberfläche durchgeführt. Es ist also möglich mit einem GridBagLayout wesentlich komplexere Oberflächen zu erstellen, als mit den vorher dargestellten Layouts. Aus diesem Grund ist das Layout jedoch etwas schwieriger zugänglich. Einen Screenshot von der Oberfläche, welche von dem obigen Quellcode erzeugt wird zeigt die Abbildung 2.8. Abbildung 2.8. Mit einem GridBagLayout kann man komplexere grafische Oberflächen erstellen.
30 2.1 Fenster und grafische Oberflächen 24 CardLayout Das folgende CardLayout ist das einzige Layout in Java, welches mit dem Benutzer der grafischen Oberfläche interagiert. Man kann sich das System dahinter so vorstellen, dass verschiedene Container, beispielsweise ein JPanel, Karten eines Kartenspiels darstellen. Nimmt man nun die erste Karte vom Stapel kann man die zweite sehen usw.. Dies gibt dem Benutzer die Möglichkeit die verschiedenen JPanels durchzublättern. Das Layout an sich ist relativ einfach zu implementieren. Es wird ganz normal an die Methode setlayout(layout) übergeben, sollte jedoch vorher in einer Variablen gespeichert werden, so dass man später noch Zugriff darauf hat, um die Benutzerinteraktionen durchzuführen. Danach können dann über add(object,string) die Containerklassen oder beliebige grafische Objekte zu dem Container, welcher das CardLayout verwendet, übergeben werden. Dabei kann über den Stringparameter jedem Objekt ein Name zugewiesen werden, über welchen man das Objekt später direkt anzeigen lassen kann. Die Objekte werden dann hintereinander dargestellt und können nun über die folgenden Funktionen durchgeblättert werden. next(container) - Zeigt das nächste Element an previous(container) - Zeigt das vorherige Element an first(container) - Zeigt das erste Element an last(container) - Zeigt das letzte Element an show(container, String) - Zeigt ein bestimmtes Element direkt an Der folgende Quellcode zeigt wie man relativ einfach, solch ein CardLayout verwenden kann. import java. awt. BorderLayout ; import java. awt. CardLayout ; import java. awt. FlowLayout ; import java. awt. event. ActionEvent ; import java. awt. event. A c t i o n L i s t e n e r ; import javax. swing. JButton ; import javax. swing. JFrame ; import javax. swing. JPanel ; import javax. swing. JTextArea ; / Hinzufügen von JPanels und JLabels und verwenden e i n e s CardLayouts / class CardFrame extends JFrame implements A c t i o n L i s t e n e r { private JButton btnprev ; private JButton btnnext ; private JButton b t n F i r s t ; private JButton btnlast ;
31 2.1 Fenster und grafische Oberflächen 25 private JButton btn5 ; private CardLayout cardlayout ; Es ist wichtig, dass das CardLayout, wie hier gezeigt, für die gesamte Klasse verfügbar ist, da in der Methode actionperformed(actionevent) später nochmal darauf zugegriffen werden muss. private JPanel pnlmain ; public CardFrame (){ s e t T i t l e ( CardLayout ) ; s e tdefaultcloseoperation ( JFrame. EXIT ON CLOSE ) ; // E i n s t e l l e n e i n e s BorderLayouts getcontentpane ( ). setlayout ( new BorderLayout ( ) ) ; // Einfügen von ButtonPanel und ShowPanel JPanel pnlbutton = new JPanel ( ) ; pnlmain = new JPanel ( ) ; getcontentpane ( ). add ( pnlbutton, BorderLayout.SOUTH) ; getcontentpane ( ). add ( pnlmain, BorderLayout.CENTER) ; / E i n s t e l l e n der Layouts von pnlbutton und pnlmain / pnlbutton. setlayout (new FlowLayout ( ) ) ; cardlayout = new CardLayout ( ) ; pnlmain. setlayout ( cardlayout ) ; Hier wird für das JPanel pnlmain das CardLayout eingerichtet. Es handelt sich dabei um das JPanel, welches die Textfelder anzeigt. Das CardLayout wird dabei in die globale Variable cardlayout geschrieben, um später noch darauf zugreifen zu können. // Hinzufügen der Objekte zu den Panels btnprev = new JButton ( < ) ;
32 2.1 Fenster und grafische Oberflächen 26 btnnext = new JButton ( > ) ; b t n F i r s t = new JButton ( S t a r t ) ; btnlast = new JButton ( Ende ) ; btn5 = new JButton ( Mitte ) ; pnlbutton. add ( btnprev ) ; pnlbutton. add ( btnnext ) ; pnlbutton. add ( b t n F i r s t ) ; pnlbutton. add ( btnlast ) ; pnlbutton. add ( btn5 ) ; btnprev. addactionlistener ( this ) ; btnnext. addactionlistener ( this ) ; b t n F i r s t. addactionlistener ( this ) ; btnlast. addactionlistener ( this ) ; btn5. addactionlistener ( this ) ; for ( int i =0; i <10; i ++){ pnlmain. add (new JTextArea ( Karte + i ), + i ) ; Hier werden die einzelnen JButtons erzeugt, mit welchen man die JPanels durchblättern kann. Ihnen werden ActionListener hinzugefügt. ActionListener werden zur Interaktion mit grafischen Elementen benötigt und werden im Abschnitt näher erläutert. Des Weiteren werden JTextAreas erzeugt, welche in das pnlmain hinzugefügt werden. Diese Stellen später die einzelnen Seiten unseres CardLayouts dar. s e t S i z e ( 4 0 0, ) ; s e t L o c a t i o n ( 5 0, 5 0 ) ; s e t V i s i b l e ( true ) ; public void actionperformed ( ActionEvent evt ){ i f ( evt. getsource ( ). e q u als ( btnnext )){ cardlayout. next ( pnlmain ) ; else i f ( evt. getsource ( ). e q u als ( btnprev )){ cardlayout. p revious ( pnlmain ) ; else i f ( evt. getsource ( ). e q u als ( b t n F i r s t )){ cardlayout. f i r s t ( pnlmain ) ; else i f ( evt. getsource ( ). e q u als ( btnlast )){ cardlayout. l a s t ( pnlmain ) ; else { cardlayout. show ( pnlmain, 5 ) ;
33 2.1 Fenster und grafische Oberflächen 27 public c l a s s FrameCreator09 { public static void main ( S t r i n g [ ] args ){ new CardFrame ( ) ; In der Methode actionperformed(actionevent) werden Benutzereingaben abgefangen und ausgewertet. Hier wird festgelegt, dass beispielsweise ein Klick auf den JButton btnnext die nächste Karte des CardLayouts anzeigt. Wie die Oberfläche aussieht, wenn man den Quellcode ausführt zeigt die Abbildung 2.9. Abbildung 2.9. Das CardLayout ist das einzige Layout in Java, welches Interaktionen des Benutzers zulässt. Weitere Informationen zu den hier erläuterten Layouts können in A Visual Guide to Layout Managers ([Javb]) von Sun nachgeschlagen werden.
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
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
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
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
MehrObjektorientierte 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
MehrGroupLayout Anmerkung
Swing Layouts Layoutmanager Ordnen Elemente eines Containers nach einem bestimmten Verfahren an Der Container erfragt bei jeder Neudarstellung bei seinem Layoutmanager, wie die Komponenten des Containers
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:
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
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
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
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,
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,
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
MehrComic Life 2.x. Fortbildung zum Mediencurriculum
Comic Life 2.x Fortbildung zum Mediencurriculum - 1 - Comic Life Eine kurze Einführung in die Bedienung von Comic Life 2.x. - 2 - Starten von Comic Life Bitte starte das Programm Comic Life. Es befindet
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
MehrEAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ
EAD II Übung 5 Graphische Benutzungsoberfläche mit BlueJ Graphische Benutzungsoberfläche (GUI) Fenster, das weitere Komponenten zur Darstellung und Interaktion enthält spezielle Standardbibliotheken erforderlich,
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:
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.
MehrProgrammieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt SS 2008 1 / 22 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche (engl: Graphical User Interface,
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.
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
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
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
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
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
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
MehrNach der Installation kann es auch schon losgehen. Für unseren Port Scanner erstellen wir zunächst ein neues Projekt:
Ein Port Scanner ist eine gute Möglichkeit den eigenen Server auf offene Ports zu scannen. Zu viele nicht benötigte und offene Ports können auf Ihrem Server und auf Ihrem Computer ein Sicherheitsrisiko
MehrUrlaubsregel in David
Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5
Mehrtentoinfinity Apps 1.0 EINFÜHRUNG
tentoinfinity Apps Una Hilfe Inhalt Copyright 2013-2015 von tentoinfinity Apps. Alle Rechte vorbehalten. Inhalt der online-hilfe wurde zuletzt aktualisiert am August 6, 2015. Zusätzlicher Support Ressourcen
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
MehrAbwesenheitsnotiz im Exchangeserver 2010
Abwesenheitsnotiz im Exchangeserver 2010 Richten sie die Abwesenheitsnotiz in Outlook 2010 ein und definieren sie, dass nur Absender eine Nachricht bekommen, die ihnen direkt eine Mail gesendet haben.
MehrLayout Manager. Astrid Beck FHT Esslingen
Layout Manager Astrid Beck FHT Esslingen Layout Manager Layout Manager arrangieren den Inhalt eines Containers gemäß vorgegebener Regeln Layout Manager BorderLayout North, South, East, West, Center FlowLayout
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:
MehrInstallation und Inbetriebnahme von Microsoft Visual C++ 2010 Express
Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation
MehrProgrammieren II. Die Klasse JList. Vorlesung 5. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester JList.
Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 37 JList JTable Layout-Manager GridBagLayout 2 / 37 Die Klasse JList Die Klasse JList stellt einen Container für Auswahllisten
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
MehrArgelander Institut für Astronomie. Persönliche Website
Argelander Institut für Astronomie Persönliche Website Zunächst loggt man sich auf www.astro.uni-bonn.de/typo3 mit seinem AIfA Zugang ein. Nach erfolgreichem Login befindet man sich im Backend des TYPO3
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...
MehrIhr CMS für die eigene Facebook Page - 1
Ihr CMS für die eigene Facebook Page Installation und Einrichten eines CMS für die Betreuung einer oder mehrer zusätzlichen Seiten auf Ihrer Facebook Page. Anpassen der "index.php" Installieren Sie das
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
MehrFotos in Tobii Communicator verwenden
Fotos in Tobii Communicator verwenden Hier wird beschrieben wie man Fotos in Tobii Communicator verwenden kann und was man zur Nutzung beachten sollte. Fotonutzung in Tobii Communicator In einigen Fällen
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
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
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
MehrJList JTable Layout-Manager GridBagLayout. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011
Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 JList 2 JTable 3 Layout-Manager 4 GridBagLayout Die Klasse JList Die Klasse JList stellt einen Container für Auswahllisten
MehrHerstellen von Symbolen mit Corel Draw ab Version 9
Herstellen von Symbolen mit Corel Draw ab Version 9 Einleitung : Icon Design-Überblick: 1) Gestalten in Corel Draw 10.0 3) Vorlage für Photopaint für Import von Corel 4) Einfügen in die PSD-Datei und Bearbeiten
MehrEinkaufslisten verwalten. Tipps & Tricks
Tipps & Tricks INHALT SEITE 1.1 Grundlegende Informationen 3 1.2 Einkaufslisten erstellen 4 1.3 Artikel zu einer bestehenden Einkaufsliste hinzufügen 9 1.4 Mit einer Einkaufslisten einkaufen 12 1.4.1 Alle
MehrAnleitung zur Webservice Entwicklung unter Eclipse
Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for
MehrMediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
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
MehrApplets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.
Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung
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
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrText Formatierung in Excel
Text Formatierung in Excel Das Aussehen des Textes einer oder mehrerer Zellen kann in Excel über verschiedene Knöpfe beeinflusst werden. Dazu zuerst die betroffenen Zelle(n) anwählen und danach den entsprechenden
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrSwing :Komponenten I (Teil 2)
l Bei Swing handelt es sich um eine Programmierschnittstelle und Grafikbibliothek zum Programmieren von grafischen Benutzeroberflächen l Swing stellt eine Menge von Klassen zur Verfügung l Swing wurde
MehrHandbuch Groupware - Mailserver
Handbuch Inhaltsverzeichnis 1. Einführung...3 2. Ordnerliste...3 2.1 E-Mail...3 2.2 Kalender...3 2.3 Kontakte...3 2.4 Dokumente...3 2.5 Aufgaben...3 2.6 Notizen...3 2.7 Gelöschte Objekte...3 3. Menüleiste...4
MehrTutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5
Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5 In diesem Tutorial will ich Ihnen zeigen, wie man mit LibreOffice Calc 3.5 eine einfache Entlohnungsberechnung erstellt, wobei eine automatische
MehrTTS - TinyTimeSystem. Unterrichtsprojekt BIBI
TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen
MehrTextgestaltung mit dem Editor TinyMCE Schritt für Schritt
Textgestaltung mit dem Editor TinyMCE Schritt für Schritt Folgender Artikel soll veröffentlicht und mit dem Editor TinyMCE gestaltet werden: Eine große Überschrift Ein Foto Hier kommt viel Text. Hier kommt
MehrSeriendruck mit der Codex-Software
Seriendruck mit der Codex-Software Seriendruck mit der Codex-Software Erstellen der Seriendruck-Datei in Windach Sie können aus der Adressverwaltung von Windach eine sogenannte Seriendruck-Datei erstellen,
MehrEinstellungen in MS-Word - Schnellzugriffsleiste -
- Schnellzugriffsleiste - Anpassen der Schnellzugriffsleiste Zusätzlich zum Menüband (Multifunktionsleiste) existiert eine Schnellzugriffsleiste die man sich selbst konfigurieren kann Schaltfläche "Office"
MehrNach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:
Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen
MehrMensch-Maschine-Interaktion
Universität Dortmund, Fachbereich Informatik Peter Bollweg, OH16 E08, bollweg@ls7.cs.uni-dortmund.de, 6328 Constantin Timm, OH16 E06, timm@ls12.cs.uni-dortmund.de, 6144 Christian Asche Dortmund, 19. Oktober
MehrInhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
MehrEinführung in die Programmierung für NF. Grafische Benutzeroberflächen
Einführung in die Programmierung für NF Grafische Benutzeroberflächen Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorienferte Programmierung kennenlernen.
MehrEinrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
MehrEinführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition
In den nachfolgenden Schritten finden Sie beschrieben, wie Sie in der Entwicklungsumgebung Microsoft Visual Studio 2010 eine Projektmappe, ein Projekt und einen ersten Quellcode erstellen, diesen kompilieren,
MehrAnleitung zur Nutzung der OFML Daten von Cascando in pcon.planner
Anleitung zur Nutzung der OFML Daten von Cascando in pcon.planner In dieser Anleitung wird die Nutzung von OFML-Daten von Cascando in pcon.planner Schritt für Schritt erläutert. 1. Cascando Produkte in
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
MehrErzherzog Johann Jahr 2009
Erzherzog Johann Jahr 2009 Der Erzherzog Johann Tag an der FH JOANNEUM in Kapfenberg Was wird zur Erstellung einer Webseite benötigt? Um eine Webseite zu erstellen, sind die folgenden Dinge nötig: 1. Ein
MehrAbwesenheitsnotiz im Exchange Server 2010
Abwesenheitsnotiz im Exchange Server 2010 1.) Richten Sie die Abwesenheitsnotiz in Outlook 2010 ein und definieren Sie, an welche Absender diese gesendet werden soll. Klicken Sie dazu auf Datei -> Informationen
MehrDieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
Millennium SMS Service Schnellübersicht Seite 1 von 6 1. Tägliche Arbeiten mit der SMS Bestätigung Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.
MehrMPDS4 EXAMPLE DATENBANK
MPDS4 EXAMPLE DATENBANK Erste Schritte In diesem Tutorial lernen Sie, wie Sie MPDS4 starten und wie Sie eine Fabrikanlage auf dem Bildschirm anzeigen und mittig ausrichten können. Voraussetzungen Windows
MehrErstellung eigener Hot-Spot-Karten
mit der Lernwerkstatt 7 Lieber Lernwerkstatt-User! Die Hot-Spot-Umgebung der Lernwerkstatt 7 bietet den Lehrern zukünftig viele weitere Möglichkeiten, den Computer als Medium in den eigenen Lehrplan zu
MehrInstallationsanleitungen
Installationsanleitungen INPA SGBD-Entwicklungsumgebung (EDIABAS) INPA für Entwickler Bevor Sie EDIABAS / INPA installieren können, müssen Sie sich für den Ordner sgref auf smuc0900 freischalten lassen.
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
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
MehrJava Lab 2006/12/13 Client
Java Lab 2006/12/13 Client Prof. Dr. Bernhard Humm Version: 1.0 Date: 2006/12/06 Darmstadt University of Applied Sciences Department of Computer Science Schöfferstr. 8b 64295 Darmstadt Germany 1 Einleitung
MehrTutorial Speichern. Jacqueline Roos - Riedstrasse 14, 8908 Hedingen, 044 760 22 41 jroos@hispeed.ch - www.forums9.ch
Jacqueline Roos - Riedstrasse 14, 8908 Hedingen, 044 760 22 41 jroos@hispeed.ch - www.forums9.ch Tutorial Speichern Wer ein Fotobuch zusammenstellen möchte, der sucht oft auf dem ganzen Computer und diversen
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
MehrVB.net Programmierung und Beispielprogramm für GSV
VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2
MehrEr musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt
Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen
MehrJava GUI Entwicklung mit Swing
Seminarunterlage Version: 5.03 Version 5.03 vom 13. Februar 2014 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen
MehrFunktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH
Funktionsbeschreibung Lieferantenbewertung von IT Consulting Kauka GmbH Stand 16.02.2010 odul LBW Das Modul LBW... 3 1. Konfiguration... 4 1.1 ppm... 4 1.2 Zertifikate... 5 1.3 Reklamationsverhalten...
MehrNovell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme
Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrHTML Programmierung. Aufgaben
HTML Programmierung Dr. Leander Brandl BRG Keplerstraße - A-8020 Graz Universität Graz - Institut für Experimentalphysik Fachdidaktik der Physik http://w4.brgkepler.asn-graz.ac.at 1. Die erste Web-Seite
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
MehrLimeSurvey -Anbindung
LimeSurvey -Anbindung 1 Was ist LimeSurvey Inhalt 1 Was ist LimeSurvey... 3 2 Grundeinstellungen in CommSy... 4 3 Grundeinstellungen in LimeSurvey... 5 4 LimeSurvey-Umfrage erstellen... 7 4.1 So erstellen
MehrProgramme im Griff Was bringt Ihnen dieses Kapitel?
3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich
MehrSchrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.
Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen. Klicken Sie auf Neu anlegen, um Ihre neue Angebotseite zu erstellen..
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.
MehrWie man einen Artikel. auf Lautschrift.org veröffentlicht. Eine Anleitung in 14 Schritten
Wie man einen Artikel auf Lautschrift.org veröffentlicht Eine Anleitung in 14 Schritten Die Schritte: 1. Einloggen 2. Neuen Beitrag starten 3. Die Seite Neuen Beitrag erstellen 4. Menü ausklappen 5. Formatvorlagen
MehrTypo3 - Inhalte. 1. Gestaltung des Inhaltsbereichs. 2. Seitenunterteilung einfügen
Typo3 - Inhalte 1. Gestaltung des Inhaltsbereichs Das Layout der neuen TVA Website sieht neben dem grafischen Rahmen und den Navigations-Elementen oben und links einen grossen Inhaltsbereich (graue Fläche)
MehrPTV VISUM TIPPS & TRICKS:
PTV VISUM TIPPS & TRICKS: LUFTBILD VON GOOGLEMAPS EINFÜGEN Wie fügt man ein richtig georeferenziertes Luftbild von GoogleMaps ein? Der vorherige Beitrag zum Thema Wie wählt man ein passendes Koordinatensystem
MehrContent Management System (CMS) Manual
Content Management System (CMS) Manual Thema Seite Aufrufen des Content Management Systems (CMS) 2 Funktionen des CMS 3 Die Seitenverwaltung 4 Seite ändern/ Seite löschen Seiten hinzufügen 5 Seiten-Editor
MehrSeite 1 von 14. Cookie-Einstellungen verschiedener Browser
Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht
Mehr