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

-Seminar-

  • Upload
    cody

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

Java 3D. -Seminar-. Java Layout Manager (JLM) Marc Dziadek. Begriffsdefinition. Oberfläche Container für Dialogelemente Registrierung der Layout-Manager Komponente Java-Objekte die auf einer Oberfläche registriert werden können Anmerkung Oberflächen können auch Komponenten sein. - PowerPoint PPT Presentation

Citation preview

Page 1: -Seminar-

-Seminar--Seminar-

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

Marc DziadekMarc Dziadek

Page 2: -Seminar-

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-

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-

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-

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-

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-
Page 8: -Seminar-
Page 9: -Seminar-

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-

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-

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-

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-

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-

GridBagLayoutGridBagLayout

GitterrasterGitterraster Unterschiedliche Zellengrößen Unterschiedliche Zellengrößen

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

Page 15: -Seminar-

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-

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-
Page 18: -Seminar-

GridBagLayoutGridBagLayoutMenüleiste

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

unbenutztJTextArea,

2 Spalten, 2 Zeilen JButton, SOUTHEAST

Page 19: -Seminar-

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-
Page 21: -Seminar-

JFrame,GridLayout

geschachtelte geschachtelte LayoutmanagerLayoutmanager

JPanel, BorderLayout

JPanel, GridLayout

JPanel, GridBagLayout

Page 22: -Seminar-

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-
Page 24: -Seminar-
Page 25: -Seminar-
Page 26: -Seminar-
Page 27: -Seminar-

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