LayoutManager. Einsatz von LayoutManagern in AWT/Swing Containern. Prof. Dr. Nikolaus Wulff
|
|
- Tobias Dresdner
- vor 7 Jahren
- Abrufe
Transkript
1 LayoutManager Einsatz von LayoutManagern in AWT/Swing Containern Prof. Dr. Nikolaus Wulff
2 Wozu LayoutManager Graphische Oberflächen müssen variabel auf Größenänderung eines Fenster reagieren. Hierzu wird intern vom Hauptfenster, i.a. ein (J)Frame oder (J)Dialog, eine repaint Nachricht an alle aggregierten Widgets gesendet. Diese müssen jetzt wissen, wie sie sich auf Grund dieser Größenänderung neu zu zeichen haben. Problem: Die Widgets wissen nichts um die anderen sie umgebenden Objekte, wie groß dürfen sie sich jetzt zeichnen? parent.getsize() reicht nicht...? Prof. Dr. Nikolaus Wulff Angewandte Informatik 2
3 Strategie Algorithmus Lösung I: Der Container kennt seine Größe und alle aggregierten Widgets. Er weist jedem Widget eine Größe und Position zu. Problem: Es gibt viele Möglichkeiten die Widgets anzuordnen. Dies bedeutet in jedem abgeleiteten Frame, Dialog oder Panel die repaint Methode geeignet zu überladen. Lösung II: Lagere den Algorithmus nach dem Stragegie-Muster in einer externen Klasse aus, mit der der Container parametrisiert wird. => LayoutManager Prof. Dr. Nikolaus Wulff Angewandte Informatik 3
4 LayoutManager Klassendiagramm Component 0..* Strategie Button Table Container 1 1 <<Interface>> LayoutManager Panel Window BorderLayout FlowLayout Frame Dialog GridLayout Bei Größenänderung fordert der Container seinen LayoutManger per layoutcontainer(this) zum Ausrichten der aggregierten Komponenten auf. Prof. Dr. Nikolaus Wulff Angewandte Informatik 4
5 LayoutManager Vielfalt Für viele mögliche Layoutstrategien gibt es bereits vorgefertigte LayoutManager: FlowLayout BorderLayout CardLayout GridLayout GridBagLayout SplittPaneLayout SpringLayout... Eigene LayoutManager entwickeln: Prof. Dr. Nikolaus Wulff Angewandte Informatik 5
6 LayoutManager auswählen Beim Design gilt es zuerst einmal eine grobe Skizze zur Anordung der Widgets zu erstellen. Folgende Fragen müssen beantwortet werden: Wie ist die Positionierung der einzelnen Widgets? absolut oder relativ Wie ist die Ausrichtung der Widgets? links, rechts oder zentriert Gibt es visuelle Abhängigkeiten untereinander? Welche Widgets haben feste Größe? Welche Widgets haben veränderliche Größe? horizontal, vertikal oder variabel in beiden Dimensionen Prof. Dr. Nikolaus Wulff Angewandte Informatik 6
7 Größe einer Komponente Jede Swing/AWT Komponente hat eine Dimension, gegeben durch ihre Höhe und Breite. Pro Komponente gibt es vier Ausprägungen: Die aktuelle Größe: getsize() Die minimalen Größe: getminimalsize() Die maximale Größe: getmaximalsize() Die Lieblingsgröße : getpreferredsize() LayoutManager fragen alle Componenten vor jeder Neuberechung nach diesen Dimensionen und werden diese je nach Strategie berücksichtigen oder auch nicht... Prof. Dr. Nikolaus Wulff Angewandte Informatik 7
8 Flow- und BoxLayoutManager FlowLayout ordnet die Elemente horizontal fließend nebeneinander an, bis die Zeile voll ist BoxLayout ordnet die Elemente horizontal oder vertikal fließend neben- oder untereinander an LayoutManager layout = new BoxLayout(comp,BoxLayout.Y_AXIS); Prof. Dr. Nikolaus Wulff Angewandte Informatik 8
9 BorderLayout Das BorderLayout unterteilt den Container in maximal 5 Bereiche: Nord, Süd, Ost, West und Mitte. NORTH WEST CENTER EAST SOUTH JPanel panel = new JPanel(new BorderLayout()); panel.add(comp, BorderLayout.CENTER); Prof. Dr. Nikolaus Wulff Angewandte Informatik 9
10 BorderLayout Strategie 1)Nur Komponenten die tatsächlich gesetzt sind werden berücksichtigt. 2)Nord- und Südkomponente werden horizontal gestreckt, ihre preferredheight wird berücksichtigt. 3)West- und Ostkomponente werden vertikal gestreckt, ihre preferredwidth wird berücksichtigt. 4)Die mittlere Komponente wird so groß wie irgend möglich in beiden Dimensionen gestreckt, ohne die Punkte 1) 3) zu verletzen. Prof. Dr. Nikolaus Wulff Angewandte Informatik 10
11 CardLayout Ein CardLayout verhält sich wie ein Stapel von Spielkarten, eine ist oben und sichtbar, die anderen liegen darunter und sind verdeckt. Jede Karte bildet genau eine Komponente ab. Über die einzelnen Schichten kann mit first(), last(), next() und previous() iteriert werden. Einfacher ist allerdings das Arbeiten mit einer JTabbedPane. Diese erlaubt einzelne Tabulatoren zu selektieren. Intern verwendet sie ein TabbedPaneLayout... Prof. Dr. Nikolaus Wulff Angewandte Informatik 11
12 GridLayout Diese Layout erzeugt ein NxM Gitter mit gleichgroßen Zellen. Komponenten werden in der Reihenfolge des Einfügens auf die Zellen verteilt JPanel panel = new JPanel( new GridLayout(2,4)); panel.add(new Button("1")); panel.add(new Button("8")); Prof. Dr. Nikolaus Wulff Angewandte Informatik 12
13 GridBagLayout Am kompliziertesten ist das GridBagLayout. Es definiert ähnlich wie das GridLayout ein Gitter. Die Gitterbreite und -höhe ist jetzt jedoch nicht konstant und kann variabel justiert werden. Componenten können sich über mehrere Gitterplätze erstrecken. Nicht alle Gitterplätze müssen besetzt sein. Hierzu müssen mit Hilfe sogenannter Constraints spezielle Argumente beim Hinzufügen der Komponente zum Container gesetzt werden Prof. Dr. Nikolaus Wulff Angewandte Informatik 13
14 GridBagLayout Constraints Das GridBagLayout gestattet per Vergabe von Constraints für jede einzelne Komponente sehr feine Justierungen. GridBagConstraints erlauben die Angabe von: relativer oder absoluter Positionierung horz., vertikale oder Ausfüllung in beide Dimension(en) Angabe von Gitterplatz und Gitterbreite und -höhe Justierung: left, center,right. Verankerung am Gitterplatz: NW N N E W E SW S Prof. Dr. Nikolaus Wulff Angewandte Informatik 14 S E
15 Felder von GridBagConstraint Integer gridx und gridy: Gitterplatz (x,y) Integer gridwidth und gridheigth: Breite und Höhe der Komponente in Gitterplatzkoordinaten. Float weightx und weighty: relative Breite und Höhe der Spalte bzw. Reihe im Gitter. Aufzählung fill: Komponente in x und/oder y Richtung skalieren. HORIZONTAL, VERTIKAL, BOTH. Aufzählung anchor: Verankerung der Komponente am Gitterplatz. NORHTEAST, WEST, etc. Prof. Dr. Nikolaus Wulff Angewandte Informatik 15
16 Variables Gitter Ein solches, variables Gitter kann nicht mit dem GridLayout erzeugt werden. Hierzu eignet sich das GridBagLayout. Prof. Dr. Nikolaus Wulff Angewandte Informatik 16
17 Auszählen des Gitters Button 3 hat eine gridwidth von 2. Button 5 hat Position (gridx,gridy)=(1,3). Prof. Dr. Nikolaus Wulff Angewandte Informatik 17
18 GridBagConstraints anwenden GridBagConstraints constraints = new GridBagConstraints(); constraints.fill = GridBagConstraints.BOTH; constraints.gridx = 0; constraints.gridy = 0; constraints.gridwidth = 1; panel.add(new Button("1"), constraints); constraints.gridx++; panel.add(new Button("2"), constraints); constraints.gridx = 0; constraints.gridy = 1; constraints.gridwidth = 2; panel.add(new Button("3"), constraints); // Button 4 missing... constraints.gridx = 1; constraints.gridy = 3; constraints.gridwidth = 1; panel.add(new Button("5"), constraints); Prof. Dr. Nikolaus Wulff Angewandte Informatik 18
19 Variable Gitterbreite oder -höhe Soll das Gitter nicht einheitlich dimensioniert werden, so kann hierzu in x- oder y Dimension jeder Komponente ein Gewicht zugewiesen werden. Solange alle Gewichte gleich groß gewählt (oder 0 sind) macht sich dies nicht bemerkbar... Wird hingegen weightx und weighty explizit unterschiedlich gewählt, so kann jeder Gitterplatz eine eigene variable Größe erhalten. Die Gewichte müssen größer Null sein und gehen relativ in die Gewichtung ein. Prof. Dr. Nikolaus Wulff Angewandte Informatik 19
20 Gewichtetes Gitter 2 und 1 als Gewichte in x Richtung 3, 2, 0 und 1 als Gewichte in y Richtung. 3/6 2/6 minsize 1/6 2/3 1/3 Prof. Dr. Nikolaus Wulff Angewandte Informatik 20
21 Gewichte vergeben constraints.gridx = 0; constraints.gridy = 0; constraints.gridwidth = 1; constraints.gridheight = 1; constraints.weightx = 2; constraints.weighty = 3; panel.add(new JButton("1"), constraints); constraints.gridx++; constraints.weightx = 1; panel.add(new JButton("2"), constraints); constraints.gridx = 0; constraints.gridy++; constraints.weighty = 2; panel.add(new JButton("3"), constraints); Prof. Dr. Nikolaus Wulff Angewandte Informatik 21
22 GridBagLayout properties int columns=4; GridBagLayout layout = new GridBagLayout(); JPanel panel = new JPanel(layout); layout.columnweights = new double[columns]; layout.columnwidths = new int[columns]; for(int i=0;i<columns;i++) { layout.columnweights[i] = 1.0; layout.columnwidths[i] = 100; } GridBagLayout ermittelt aus den einzelnen Gewichten und Weiten der Constraints vier Arrays, die jedoch auch explizit gesetzt werden können und dann diese Berechnung übersteuern. Es lohnt sich daher ein GridBagLayout zunächst auf einem Blatt Papier zu designen... Prof. Dr. Nikolaus Wulff Angewandte Informatik 22
23 Alternativen Das Arbeiten mit dem GridBagLayout ist relativ kompliziert und aufwendig. Gerade für Formulare bietet sich eine einfachere Alternative an: Das Verschachteln von Panels mit jeweils eigenen LayoutManagern. Die einzelnen Bereiche lassen sich recht modular programmieren, testen und zusammensetzen. Tip: Im Testmodus jedem Panel eine andere Hintergrundfarbe setzten. Dies erleichtert die visuelle Zuordnung. Prof. Dr. Nikolaus Wulff Angewandte Informatik 23
24 Layouts verschachteln Beispiel: Ausgangspunkt ist ein BorderLayout. Jede der fünf möglichen Komponenten ist selber ein Panel mit unterschiedlichem Layouts. Ein GridBagLayout mit zwei FlowLayouts im Norden und Süden und Box- und GridLayout in Ost und West... Prof. Dr. Nikolaus Wulff Angewandte Informatik 24
25 LayoutManager selber entwickeln Für spezielle Zwecke kann der LayoutManager selber entwickelt werden. Hierzu bietet es sich an einen existierenden LayoutManager zu überladen, um nicht alle Funktionalität selber implementieren zu müssen. Meistens wird nicht die Schnittstelle LayoutManager sondern die Erweiterung LayoutManager2 verwendet. Letzterer bietet optimierte Layoutfähigkeiten in Form von Constraints an. Wichtige zu implentierende Funktionen sind: addlayoutcomponent(component comp, Object constraints) layoutcontainer(container parent) Prof. Dr. Nikolaus Wulff Angewandte Informatik 25
26 ApplicationLayout Es soll ein spezieller LayoutManager für eine Anwendung mit Tool- und Statusbar, sowie einer Navigator- und Inhaltsansicht entwickelt werden. Toolbar Navigator Content Statusbar Bemerkung: Das geht auch mit dem BorderLayout! Prof. Dr. Nikolaus Wulff Angewandte Informatik 26
27 ApplicationLayout Design Es werden vier Konstanten definiert, zum Setzen der vier Komponenten in einer Map: NAVIGATOR, TOOLBAR, STATUSBAR,CONTENT Ferner werden drei Variablen benötigt: Die relative Toolbar Höhe Die relative Statusbar Höhe Die relative Navigator Breite Aus diesen drei Werten ergeben sich Die relative Höhe und Breite vom Inhaltsbereich In der layoutcontainer Methode wird für jede der vier Komponenten, ausgehend von der aktuellen Größe des Containers, die BoundingBox berechnet. Prof. Dr. Nikolaus Wulff Angewandte Informatik 27
28 ApplicationLayout Implementierung public class ApplicationLayout extends BorderLayout { public final static String TOOLBAR = "ToolBar"; public final static String STATUSBAR = "StatusBar"; public final static String NAVIGATOR = "Navigator"; public final static String CONTENT = "Center"; private final static float TOOBAR_HEIGHT = 0.10f; private final static float NAVIGATOR_WIDTH = 0.15f; private final static float STATUSBAR_HEIGHT = 0.10f; private float toolbarheight = TOOBAR_HEIGHT; private float statusbarheight = STATUSBAR_HEIGHT; private float navigatorwidth = NAVIGATOR_WIDTH; private HashMap<String, Component> components = new HashMap<String, public void addlayoutcomponent(component comp, Object constraints) { // super.addlayoutcomponent(comp, constraints); components.put(constraints.tostring(), comp); } Prof. Dr. Nikolaus Wulff Angewandte Informatik 28
29 public void layoutcontainer(container parent) { Component component; Insets insets = parent.getinsets(); int x,y,h,w; int width = parent.getwidth(); int height = parent.getheight(); width -= insets.left + insets.right; height -= insets.top + insets.bottom; component = components.get(toolbar); x = insets.left; y = insets.top; w = width; h = (int)(toolbarheight*height); component.setbounds(x,y,w,h); Prof. Dr. Nikolaus Wulff Angewandte Informatik 29
30 layoutcomponent cont. component = components.get(navigator); x = insets.left; y += h; w = (int)(navigatorwidth*width); h = (int)(getnavigatorheight()*height); component.setbounds(x,y,w,h); component = components.get(content); x += w; w = width-w; component.setbounds(x,y,w,h); component = components.get(statusbar); x = insets.left; y += h; w = width; h = (int)(statusbarheight*height); component.setbounds(x,y,w,h); } Achtung: Annahme ist alle vier Komponenten sind gesetzt! Prof. Dr. Nikolaus Wulff Angewandte Informatik 30
31 Anwendung des ApplicationLayouts public JPanel createapplicationpane() { JComponent comp; ApplicationLayout layout layout = new ApplicationLayout(); layout.setnavigatorwidth(0.18f); JPanel panel = new JPanel(); panel.setlayout(layout); comp = createstatuspanel(); comp.setbackground(color.blue); panel.add(comp,applicationlayout.statusbar); comp = createtoolbarpanel(); comp.setbackground(color.gray); panel.add(comp,applicationlayout.toolbar); Prof. Dr. Nikolaus Wulff Angewandte Informatik 31
32 ApplicationManager in Aktion 10% 80% 10% 18% 82% Prof. Dr. Nikolaus Wulff Angewandte Informatik 32
33 NullLayoutManager Als letzte Alternative bleibt der sogenannte NullLayoutManager: container.setlayout(null); Dadurch wird der Layout-Mechanismus eines Containers abgeschaltet. Es werden exakt die (x,y)-positionen und (withd,height)-dimensionen der Componenten verwendet, wie explizit angegeben. Dies erzeugt eine starre GUI ohne resize Fähigkeiten, jedoch exakt ausgerichtet. Dies setzt allerdings Kenntniss des Displaygröße des Benutzers zur Entwicklungszeit voraus... Prof. Dr. Nikolaus Wulff Angewandte Informatik 33
34 Zusammenfassung LayoutManager bieten eine effiziente Möglichkeit geeignete Strategien zum Justieren der Widgets auszuwählen. Sie lassen sich beliebig mit Hilfe von Panels verschachteln. Für Spezialfälle ist es relativ leicht eigene LayoutManager selbst zu entwickeln. Prof. Dr. Nikolaus Wulff Angewandte Informatik 34
GroupLayout 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
Mehr11. GUI-Programmierung mit SWING Überblick
11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing
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
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
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
MehrEreignisse (Events) in Java
Ereignisse (Events) in Java werden durch Aktionen an GUI-Komponenten ausgelöst Quelle: GUI-Komponente, die ein Ereignis als Instanz einer Event-Klasse erzeugt Beispiel: ein Button, der angeklickt wird
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,
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
MehrEinführung in die Programmierung für NF. Übung
Einführung in die Programmierung für NF Übung 09 18.12.2013 Inhalt Korrektur Blatt 8 Wiederholung Design Patterns Einführung in GUI s mit Java Swing und AWT Einführung in die Programmierung für NF Übung
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
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
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
MehrLayout und Paint. Die Layout und Paint Strategie in AWT/Swing Containern. Prof. Dr. Nikolaus Wulff
Layout und Paint Die Layout und Paint Strategie in AWT/Swing Containern Prof. Dr. Nikolaus Wulff Dynamische Komponenten Häufig kommt es vor, dass Komponenten auf Grund von Ereignissen zu einem Container
MehrGUI-Programmierung mit Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 11: GUI 1: AWT (1) GUI-Programmierung mit Java.
Universität Osnabrück 1 GUI-Programmierung mit Java 3 - Objektorientierte Programmierung in Java Vorlesung 11: GUI 1: AWT (1) SS 2004 Prof. Dr. F.M. Thiesing, FH Dortmund Alle unsere bisherigen Anwendungsbeispiele
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
MehrGUI Programmierung mit javax.swing
java.awt Swing Komponenten Layout Manager Ausblick GUI Programmierung mit University basierend auf Folien von Dr. Beatrice Amrhein (Bern), 19. Juni 2006 java.awt Swing Komponenten Layout Manager Ausblick
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.
MehrEinführung: Grafische Benutzeroberflächen. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 22 Einführung: Grafische Benutzeroberflächen 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische
MehrIst eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt
GUI GUI = Graphical User Interface Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt Gute Übersicht über alle Funktionalitäten
MehrGUI-Programmierung. Teil I. Unterlagen zum Modul OOP mit Java V by MOU2/BFH-TI. Berner Fachhochschule Technik und Informatik
GUI-Programmierung mit Java Teil I Unterlagen zum Modul OOP mit Java V 3.0 2007 by WBR1/BFH-TI 2011 by MOU2/BFH-TI GUI-Programmierung V3.0 2011 by WBR1&MOU2/BFH-TI Lernziele Die Kursteilnehmer sind in
MehrEinige vorgefertigte Layout-Manager:
Einige vorgefertigte Layout-Manager: FlowLayout LayoutManager GridLayout BorderLayout LayoutManager2 CardLayout GridBagLayout GridBagConstraints 945 FlowLayout: Das Default-Layout der Klasse Panel. Komponenten
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik GUI-Programmierung mit Swing AWT und Swing Java enthält zwei Pakete zur Programmierung graphischer Oberflächen. java.awt: Das Abstract
Mehr7. Architektur interaktiver Systeme
7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 7.2 Ereignisgesteuerter Programmablauf 7.3 Benutzungsoberflächen (Fortsetzung) Layout-Manager Definition Ein Layout-Manager ist ein Objekt,
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
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
Mehr...erinnern Sie sich? oopjs4b / kwhbkd4r
...erinnern Sie sich? oopjs4b / kwhbkd4r !" Ereignisbehandlung in awt/swing führt Liste interessierter Behandler GUI- Komponente (z.b. Knopf) wird eingetragen trägt ein Ereigniskanal fertigt ab neuer Behandler
MehrFachhochschule Fulda Fachbereich Angewandte Informatik. Hausarbeit Seminar: Java3D. Java Layout-Manager WS 2002/2003
Fachhochschule Fulda Fachbereich Angewandte Informatik Hausarbeit Seminar: Java3D Java Layout-Manager WS 2002/2003 Verfasser: m.dziadek@gmx.de Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung...
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,
MehrGrafische Benutzeroberflächen
Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Aufgabe Ein Benutzer soll zwei Zahlen in ein Programm
MehrProgrammiermethodik. Übung 7
Programmiermethodik Übung 7 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung HA6 Entwicklung von grafischen Oberflächen Mock-Ups GUI Builder Swing
MehrProgrammiertechnik GUI Programmierung mit Java Swing
Programmiertechnik GUI Programmierung mit Java Swing Prof. Dr. Oliver Haase Software Engineering und Verteilte Systeme Raum F012 haase@htwg-konstanz.de Tel: 07531/206-720 Oliver Haase Hochschule Konstanz
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
MehrJLabel. dient zur Textanzeige. können auch Bilder anzeigen: mylabel.seticon( new ImageIcon( C:/Pfad/zum/Bild.jpg )
Swing Komponenten Thomas Wieczorek http://www.wieczo.net/?p=76 Hier trage ich die Komponenten zusammen, die Kreling und Wiedling in ihren Klausuren oft verwendet haben. Bei Verbesserung: Bitte Kommentar
MehrAbstract Windowing Toolkit
Abstract Windowing Toolkit import java.awt.* Package aus der java Klassenbibliothek, stellt Klassen für graphische Benutzeroberflächen bereit Die Komponenten (Button, TextField usw.) basieren auf den Implementationen
MehrGraphische Oberflächen Teil 1
Graphische Oberflächen Teil 1 AWT und Swing Grundlegender Aufbau von GUIs Graphikausgabe Layoutmanagement Ereignismodell Menus und Actions GUI Elemente Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer
Mehr11. GUI-Programmierung mit SWING Überblick
11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing
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,
MehrGraphische Oberflächen Teil 1
Graphische Oberflächen Teil 1 AWT und Swing Grundlegender Aufbau von GUIs Graphikausgabe Layoutmanagement Ereignismodell Menus und Actions GUI Elemente Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer
MehrZiele. Kapitel 8: Grafische Benutzerschnittstellen. AWT und Swing. Ziele (2)
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Ziele Kapitel 8: Grafische Benutzerschnittstellen Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische
MehrVorlosung: Swing: Erstellen eines JFrames mit GridBagLayout
Hchschule Harz BS/GUI Vrlesung: FB Autmatisierung und Infrmatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm BS/GUI Thema: Swing und GridBagLayut Versuchsziele Kenntnisse in der Anwendung vn: Erstellen einer
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Graphische Benutzerschnittstellen I GUI erzeugen Seite 1 GUI GUI: Graphical User Interface Graphische Benutzeroberfläche Seite 2
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
MehrJavakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 02: Streams filtern, Swing Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Datenströme (Streams) Filtern FilterWriter, - Reader 2.
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
MehrEreignisverwaltung und Layout-Typen
Ereignisverwaltung und Layout-Typen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Ereignisverwaltung
MehrKapitel 8: Grafische Benutzerschnittstellen
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 8: Grafische Benutzerschnittstellen Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische
MehrEinführung in Swing. Graphical User Interface
Einführung in Swing Ho Ngoc Duc IFIS - Universität zu Lübeck Graphical User Interface Ein GUI-Programm beinhaltet: Graphische Darstellung der Anwendungsdaten und Interaktionsmöglichkeiten in Fenstern Steuerung
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Ereignisverwaltung und Layout-Typen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Ereignis-Verwaltung 2 Layout-Typen GridLayout
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.
Mehrjcontentpane.setlayout(new BorderLayout()); // unten JPanel unten = new JPanel(); unten.setlayout( new BoxLayout(unten, BoxLayout.
04.07.2011 Lösungsvorschlag 1. Aufgabe (12 + 12 Punkte): Screendesign : im Center: Label mit Bild 3P: Panel im West mit BoxLayout und TextField, Scrollpane und TextArea 4P: Panel im East mit FlowLayout
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
MehrSoftwaretechnik (Medieninformatik): GUIs mit Swing Überblick
Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick 1 Einführung 2 Einfache Swing Komponenten 3 Ereignisbehandlung und Adapterklassen 4 Zeichnen 5 Layout Manager 6 Komplexere Swing Komponenten
MehrPunkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.
Hochschule der Medien Prof Uwe Schulz 1 Februar 2007 Stuttgart Klausur Informatik 2, EDV-Nr 40303/42022 Seite 1 von 2 Name: Matr Nr: Teil 1: Keine Hilfsmittel Bearbeitungszeit: 20 Minuten Teil 1 Teil 2
MehrGrafische Benutzeroberflächen
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Aufgabe Ein Benutzer soll
MehrGUIs in Java und ihre Programmierung
GUIs in Java und ihre Programmierung Einführung GUI = Graphical User Interface graphische Benutzerschnittstelle Java Tutorial java.sun.com/docs/books/tutorial/index.html Java Documentation (in Version
MehrHo Ngoc Duc IFIS - Universität zu Lübeck
Ho Ngoc Duc IFIS - Universität zu Lübeck 30.04.2003 SWING ist die Java Klassenbibliothek zur Entwicklung grafischer Oberflächen. Im Gegensatz zum AWT (Abstract Windowing Toolkit) nutzt SWING leichtgewichtete
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrProgrammieren in Java
Programmieren in Java Vorlesung 04: Graphische Benutzerschnittstelle am Beispiel von Swing Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Programmieren
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrGrafische Benutzeroberflächen
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrProgrammieren II. Menü-Klassen in Java. Menüs. Menüs. Action. Dr. Klaus Höppner. GridBagLayout. Hochschule Darmstadt SS 2008
Programmieren II Menüs Dr. Klaus Höppner Action Hochschule Darmstadt SS 2008 GridBagLayout 1 / 30 2 / 30 Menüs Menü-Klassen in Java In Fenstern von grafischen Anwendungen kennt man folgende Arten von Menüs:
Mehr5. Java Swing Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006
5. Java Swing Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung II Einordnung
MehrAuszug aus der Klassenstruktur
Swing javax.swing Auszug aus der Klassenstruktur JComponent AbstractButton JColorChooser JComboBox JInternalFrame JLabel JList JPanel JTable JTextComponent JTree JToolBar JToolTip JToggleButton JButton
MehrTechniken der Projektentwicklung
Einleitung Architektur Swing Beispiele Aufgabe Techniken der Projektentwicklung Swing Concepts Ingo Lütkebohle Termin 11 Ingo Lütkebohle Techniken der Projektentwicklung 1 Einleitung Architektur Swing
MehrZiel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: "graphical user interface", GUI) in Java
GUI-Programmierung in Java GUI-Programmierung in Java 2002 Prof. Dr. Rainer Manthey Informatik II 1 AWT und Swing Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrJAVA Oberflächen mit Swing
JAVA Oberflächen mit Swing Grafik von http://javafx.com 159 AGENDA Grundlagen GUI Swing JavaFX 160 GRAPHISCHE BENUTZEROBERFLÄCHEN (1) AWT = Abstract Window Toolkit Verwendet die jeweiligen GUI-Komponenten
MehrExkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrUNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme
UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme Musterklausur zur Einführung in die Informatik II 2. Teilklausur, 18.07.2006 Bitte lesen
MehrFakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 8
WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 12.12.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 8 Abgabe: Montag, 19.12.2011, 12.00 Uhr, Informatik
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrVorlesung Programmieren
Vorlesung Programmieren GUIs mit Java Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Bisher... 2 Apple Lisa Office System 3.1 3 Graphical
Mehr9 Graphikfenster 9-1. Grafikfenster. Ereignisorientiertes Programmieren. Übungsaufgaben
9 Graphikfenster 9-1 Inhalt Grafikfenster Fenster Ereignisorientiertes Programmieren Komponenten Layout Übungsaufgaben Fenster Wir haben bisher rein text-basierte Programme geschrieben. Nun wollen wir
MehrHochschule der Medien Prof. Uwe Schulz 13. Juli 2009 Klausur Informatik, EDV-Nr Seite 1 von 6. Teil 2: Aufgaben
Hochschule der Medien Prof Uwe Schulz 13 Juli 2009 Klausur Informatik, EDV-Nr 40301 Seite 1 von 6 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: Bearbeitungszeit: alle außer tragbare Computer und Nachbar
MehrSommersemester Implementierung III: GUI und Verhalten (Teil 2)
Sommersemester 2003 Implementierung III: GUI und Verhalten (Teil 2) 26 Aufgabe 5 Implementierung III: GUI und Verhalten (Teil 2) Umfang: 1 Woche Punkte: 50 P. Als Nächstes soll die Implementierung des
MehrMenüs Action GridBagLayout. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 31
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 31 Menüs Action GridBagLayout 2 / 31 Menüs In Fenstern von grafischen Anwendungen kennt man folgende Arten von Menüs: Menüleisten
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:
Mehr7.1 Übersicht Geschichte von swing
Frühjahrsemester 2012 CS108 Programmier-Projekt Kapitel 7: Grafikprogrammierung mit swing H. Schuldt 7.1 Übersicht Geschichte von swing AWT hat den meisten Ansprüchen für die Grafikprogrammierung nicht
MehrEntwicklung von E-Learning Komponenten zur Computergrafik
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:
MehrFunktionale und Objekt-Orientierte Programmierkonzepte
Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1
MehrMedientechnik. Übung 2 Java Swing
Medientechnik Übung 2 Java Swing Planung Nr Zeitraum Thema 1 20.04. 25.04. Bildretusche mit Gimp 2 27.04. 01.05. GUI Programmierung 3 04.05. 08.05. Model-View Controller 4 18.05. 22.05. Bildfilter 5 26.05.
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1
MehrWiederholung. Klassenhierarchie:
Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrSchablonen für Klassen, Interfaces oder Methoden, die noch nicht festgelegte Datentypen verwenden
Generics Schablonen für Klassen, Interfaces oder Methoden, die noch nicht festgelegte Datentypen verwenden Typvariablen statt (fester) Datentypen werden hinter Bezeichnern in spitzen Klammern aufgezählt
MehrTechnische Universität Braunschweig
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 18. August 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
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
MehrFachhochschule Stuttgart Prof. Uwe Schulz 5. Juli 2006 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4
Hochschule der Medien Klausur Informatik, EDV-Nr. 40301(42021) Seite 1 von 4 Name: Matr. Nr.: Note Teil 1: Keine Hilfsmittel! Bearbeitungszeit: 20 Minuten Frage Stichwort Punkte 1 Schleife 2 2 Code-Fragment
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
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$ java awt.main A # typische Dekodierung $ java -Dtrace=all awt.main A # alle Events $ java -Dtrace=none awt.main A # keine Dekodierung
111 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Button [ Applet] Beispiel A dient zum Experimentieren mit Button- und Panel-Objekten. Button stammt von Component ab, stellt einen String
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
Mehr/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();
Bereich: Grafische Benutzeroberflächen (UI), Events (2) Editor Package: de.dhbwka.java.exercise.ui.editor Klasse: Editor Aufgabenstellung: Schreiben Sie einen kleinen Texteditor mit Swing! Keine Panik,
Mehr