27
-Seminar- -Seminar- Java Layout Manager Java Layout Manager (JLM) (JLM) Marc Dziadek Marc Dziadek

-Seminar- Java Layout Manager (JLM) Marc Dziadek

Embed Size (px)

Citation preview

Page 1: -Seminar- Java Layout Manager (JLM) Marc Dziadek

-Seminar--Seminar-

Java Layout Manager Java Layout Manager (JLM)(JLM)

Marc DziadekMarc Dziadek

Page 2: -Seminar- Java Layout Manager (JLM) Marc Dziadek

BegriffsdefinitionBegriffsdefinition

Oberfläche Oberfläche Container für DialogelementeContainer für Dialogelemente Registrierung der Layout-ManagerRegistrierung der Layout-Manager

Komponente Komponente Java-Objekte die auf einer Oberfläche Java-Objekte die auf einer Oberfläche

registriert werden könnenregistriert werden können Anmerkung Anmerkung

Oberflächen können auch Komponenten Oberflächen können auch Komponenten seinsein

Page 3: -Seminar- Java Layout Manager (JLM) Marc Dziadek

Gründe für Layout ManagerGründe für Layout Manager

Standart: Feste Anordnung der Standart: Feste Anordnung der ElementeElemente

Java plattformunabhängigJava plattformunabhängig Unterschiedliche BetriebssystemeUnterschiedliche Betriebssysteme Unterschiedliche AusgabegeräteUnterschiedliche Ausgabegeräte

Unterschiedliche ElementgrößeUnterschiedliche Elementgröße Verzerrtes LayoutVerzerrtes Layout

Page 4: -Seminar- Java Layout Manager (JLM) Marc Dziadek

Layout-Manager: Java-Layout-Manager: Java-Pakete Pakete

java.awt.*java.awt.*

Einbinden in QuelltextEinbinden in Quelltext import java.awt.*; import java.awt.*; import java.awt.<<Layoutmanager>>;import java.awt.<<Layoutmanager>>;

Page 5: -Seminar- Java Layout Manager (JLM) Marc Dziadek

FunktionsweiseFunktionsweise

Mit AWT und Swing nutzbarMit AWT und Swing nutzbar Swing: contentPaneSwing: contentPane

1.1. JLM instanziierenJLM instanziieren2.2. JLM der Oberfläche zuweisenJLM der Oberfläche zuweisen

Oberflächenmethode setLayout()Oberflächenmethode setLayout()

3.3. Optional: Konfiguration des LMOptional: Konfiguration des LM AbständeAbstände AusrichtungAusrichtung Etc. Etc.

Page 6: -Seminar- Java Layout Manager (JLM) Marc Dziadek

FunktionsweiseFunktionsweise

4.4. Komponenten bei Oberfläche Komponenten bei Oberfläche registrierenregistrierenaddadd(Component)(Component)

automatisch bei JLM registriertautomatisch bei JLM registriert JLM kümmert sich im Rahmen interner JLM kümmert sich im Rahmen interner

Regeln um die AnordnungRegeln um die Anordnung i.A. Reihenfolge der Komponenten-i.A. Reihenfolge der Komponenten-

registrierung entscheidend (Ausnahmen!)registrierung entscheidend (Ausnahmen!)

5.5. Oberflächengröße minimierenOberflächengröße minimierenpackpack()()

Page 7: -Seminar- Java Layout Manager (JLM) Marc Dziadek
Page 8: -Seminar- Java Layout Manager (JLM) Marc Dziadek
Page 9: -Seminar- Java Layout Manager (JLM) Marc Dziadek

Flow-LayoutFlow-Layout

einfachster Layoutmanagereinfachster Layoutmanager Ordnet die Elemente hintereinander an Ordnet die Elemente hintereinander an

(„Kette“)(„Kette“) publicpublic FlowLayout( FlowLayout(intint align, align, intint hgap, hgap, intint

vgap) vgap)

Page 10: -Seminar- Java Layout Manager (JLM) Marc Dziadek

Grid-LayoutGrid-Layout

Oberfläche wird in Gitter mit Zellen Oberfläche wird in Gitter mit Zellen gleicher Größe aufgeteiltgleicher Größe aufgeteilt

Elemente werden auf Zellengröße skaliertElemente werden auf Zellengröße skaliert

geschachtelte Layout-Managergeschachtelte Layout-Manager publicpublic GridLayout( GridLayout(intint rows, int colums, rows, int colums,

intint hgap, hgap, intint vgap) vgap)

Page 11: -Seminar- Java Layout Manager (JLM) Marc Dziadek

Grid-LayoutGrid-Layout

Oberfläche wird in Gitter mit Zellen Oberfläche wird in Gitter mit Zellen gleicher Größe aufgeteiltgleicher Größe aufgeteilt

Elemente werden auf Zellengröße skaliertElemente werden auf Zellengröße skaliert

geschachtelte Layout-Managergeschachtelte Layout-Manager publicpublic GridLayout( GridLayout(intint rows, int colums, rows, int colums,

intint hgap, hgap, intint vgap) vgap)

Page 12: -Seminar- Java Layout Manager (JLM) Marc Dziadek

Border-LayoutBorder-Layout

Oberfläche in 5 Bereiche aufgeteiltOberfläche in 5 Bereiche aufgeteilt(North, West, Center, East, South)(North, West, Center, East, South)

Spezifikation des BereichesSpezifikation des Bereiches addadd(String name, Component component) (String name, Component component)

Komponentenskalierung bereichsabhängigKomponentenskalierung bereichsabhängig

Page 13: -Seminar- Java Layout Manager (JLM) Marc Dziadek

GridBag-LayoutGridBag-Layout

komplexer Layout-Managerkomplexer Layout-Manager detailliert konfigurierbardetailliert konfigurierbar lange Einarbeitungszeitlange Einarbeitungszeit viel Erfahrung nötigviel Erfahrung nötig

beste Resultatebeste Resultate

Page 14: -Seminar- Java Layout Manager (JLM) Marc Dziadek

GridBagLayoutGridBagLayout

GitterrasterGitterraster Unterschiedliche Zellengrößen Unterschiedliche Zellengrößen

möglichmöglich Komponenten über mehrere ZellenKomponenten über mehrere Zellen

Page 15: -Seminar- Java Layout Manager (JLM) Marc Dziadek

GridBag-LayoutGridBag-Layout

1.1. Instanz von GridBagLayout erzeugen Instanz von GridBagLayout erzeugen und bei der Oberfläche registrierenund bei der Oberfläche registrieren

2.2. Object GridBagConstraints für jede Object GridBagConstraints für jede Komponente erzeugen und über deren Komponente erzeugen und über deren Membervariablen konfigurierenMembervariablen konfigurieren

3.3. Registrieren beim Layout-ManagerRegistrieren beim Layout-ManagersetConstraints(Component, GridBagConstraints) setConstraints(Component, GridBagConstraints)

4.4. Komponente bei Oberfläche Komponente bei Oberfläche registrierenregistrierenadd()add()

Page 16: -Seminar- Java Layout Manager (JLM) Marc Dziadek

GridBagConstraintsGridBagConstraints

public GridBagConstraints(public GridBagConstraints(intint gridx, gridx, intint gridy, gridy, intint gridwidth, gridwidth, intint gridheight, gridheight,doubledouble weightx, weightx, doubledouble

weighty, weighty, intint anchor, anchor, intint fill, fill, Insets Insets insets, insets, intint ipadx, ipadx, intint ipady) ipady)

Tipp!Tipp!

Page 17: -Seminar- Java Layout Manager (JLM) Marc Dziadek
Page 18: -Seminar- Java Layout Manager (JLM) Marc Dziadek

GridBagLayoutGridBagLayoutMenüleiste

--------------JButton, 3 Spalten-----------------

unbenutztJTextArea,

2 Spalten, 2 Zeilen JButton, SOUTHEAST

Page 19: -Seminar- Java Layout Manager (JLM) Marc Dziadek

NULL-LayoutNULL-Layout

Kein LayoutmanagerKein Layoutmanager setLayout( null );setLayout( null );

Feste Positionierung der Feste Positionierung der KomponentenKomponenten

1.1. Erzeugen der KomponenteErzeugen der Komponente

2.2. Festlegung Position/GrößeFestlegung Position/GrößesetSize(); setLocation(); setBounds();setSize(); setLocation(); setBounds();

3.3. Registrieren der KomponenteRegistrieren der Komponente Fenstergröße setzen (kein pack())Fenstergröße setzen (kein pack())

Page 20: -Seminar- Java Layout Manager (JLM) Marc Dziadek
Page 21: -Seminar- Java Layout Manager (JLM) Marc Dziadek

JFrame,GridLayout

geschachtelte geschachtelte LayoutmanagerLayoutmanager

JPanel, BorderLayout

JPanel, GridLayout

JPanel, GridBagLayout

Page 22: -Seminar- Java Layout Manager (JLM) Marc Dziadek

BewertungBewertung

Viel Mühe und ZeitViel Mühe und Zeit Viel Erfahrung nötigViel Erfahrung nötig FrustrationFrustration Abhängigkeiten komplexer LayoutsAbhängigkeiten komplexer Layouts

Unabdingbar für Unabdingbar für PlattformunabhängigkeitPlattformunabhängigkeit

Ein Muss für Java-ProgrammiererEin Muss für Java-Programmierer

Page 23: -Seminar- Java Layout Manager (JLM) Marc Dziadek
Page 24: -Seminar- Java Layout Manager (JLM) Marc Dziadek
Page 25: -Seminar- Java Layout Manager (JLM) Marc Dziadek
Page 26: -Seminar- Java Layout Manager (JLM) Marc Dziadek
Page 27: -Seminar- Java Layout Manager (JLM) Marc Dziadek

QuellenQuellen

GoTo Java 2,GoTo Java 2, 2. Auflage, 2. Auflage,

Guido Krüger, Addison-WesleyGuido Krüger, Addison-Wesley Java professionell, Java professionell,

Gerhard Wilhelms, Markus Kopp, Gerhard Wilhelms, Markus Kopp, MITP-VerlagMITP-Verlag

http://java.sun.comhttp://java.sun.com http://www.java3d.orghttp://www.java3d.org