Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "-Seminar- Java Layout Manager (JLM) Marc Dziadek."—  Präsentation transkript:

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

2 Begriffsdefinition Oberfläche Oberfläche Container für Dialogelemente Container für Dialogelemente Registrierung der Layout-Manager Registrierung der Layout-Manager Komponente Komponente Java-Objekte die auf einer Oberfläche registriert werden können Java-Objekte die auf einer Oberfläche registriert werden können Anmerkung Anmerkung Oberflächen können auch Komponenten sein Oberflächen können auch Komponenten sein

3 Gründe für Layout Manager Standart: Feste Anordnung der Elemente Standart: Feste Anordnung der Elemente Java plattformunabhängig Java plattformunabhängig Unterschiedliche Betriebssysteme Unterschiedliche Betriebssysteme Unterschiedliche Ausgabegeräte Unterschiedliche Ausgabegeräte Unterschiedliche Elementgröße Unterschiedliche Elementgröße Verzerrtes Layout Verzerrtes Layout

4 Layout-Manager: Java-Pakete java.awt.* java.awt.* Einbinden in Quelltext Einbinden in Quelltext import java.awt.*; import java.awt.*; import java.awt. >; import java.awt. >;

5 Funktionsweise Mit AWT und Swing nutzbar Mit AWT und Swing nutzbar Swing: contentPane Swing: contentPane 1. JLM instanziieren 2. JLM der Oberfläche zuweisen Oberflächenmethode setLayout() Oberflächenmethode setLayout() 3. Optional: Konfiguration des LM Abstände Abstände Ausrichtung Ausrichtung Etc. Etc.

6 Funktionsweise 4. Komponenten bei Oberfläche registrieren add(Component) automatisch bei JLM registriert automatisch bei JLM registriert JLM kümmert sich im Rahmen interner Regeln um die Anordnung JLM kümmert sich im Rahmen interner Regeln um die Anordnung i.A. Reihenfolge der Komponenten- registrierung entscheidend (Ausnahmen!) i.A. Reihenfolge der Komponenten- registrierung entscheidend (Ausnahmen!) 5. Oberflächengröße minimieren pack()

7

8

9 Flow-Layout einfachster Layoutmanager einfachster Layoutmanager Ordnet die Elemente hintereinander an (Kette) Ordnet die Elemente hintereinander an (Kette) public FlowLayout(int align, int hgap, int vgap) public FlowLayout(int align, int hgap, int vgap)

10 Grid-Layout Oberfläche wird in Gitter mit Zellen gleicher Größe aufgeteilt Oberfläche wird in Gitter mit Zellen gleicher Größe aufgeteilt Elemente werden auf Zellengröße skaliert Elemente werden auf Zellengröße skaliert geschachtelte Layout-Manager geschachtelte Layout-Manager public GridLayout(int rows, int colums, public GridLayout(int rows, int colums, int hgap, int vgap) int hgap, int vgap)

11 Grid-Layout Oberfläche wird in Gitter mit Zellen gleicher Größe aufgeteilt Oberfläche wird in Gitter mit Zellen gleicher Größe aufgeteilt Elemente werden auf Zellengröße skaliert Elemente werden auf Zellengröße skaliert geschachtelte Layout-Manager geschachtelte Layout-Manager public GridLayout(int rows, int colums, public GridLayout(int rows, int colums, int hgap, int vgap) int hgap, int vgap)

12 Border-Layout Oberfläche in 5 Bereiche aufgeteilt (North, West, Center, East, South) Oberfläche in 5 Bereiche aufgeteilt (North, West, Center, East, South) Spezifikation des Bereiches Spezifikation des Bereiches add(String name, Component component) add(String name, Component component) Komponentenskalierung bereichsabhängig Komponentenskalierung bereichsabhängig

13 GridBag-Layout komplexer Layout-Manager komplexer Layout-Manager detailliert konfigurierbar detailliert konfigurierbar lange Einarbeitungszeit lange Einarbeitungszeit viel Erfahrung nötig viel Erfahrung nötig beste Resultate beste Resultate

14 GridBagLayout Gitterraster Gitterraster Unterschiedliche Zellengrößen möglich Unterschiedliche Zellengrößen möglich Komponenten über mehrere Zellen Komponenten über mehrere Zellen

15 GridBag-Layout 1. Instanz von GridBagLayout erzeugen und bei der Oberfläche registrieren 2. Object GridBagConstraints für jede Komponente erzeugen und über deren Membervariablen konfigurieren 3. Registrieren beim Layout-Manager setConstraints(Component, GridBagConstraints) 4. Komponente bei Oberfläche registrieren add()

16 GridBagConstraints public GridBagConstraints( int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, Insets insets, int ipadx, int ipady) public GridBagConstraints( int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, Insets insets, int ipadx, int ipady) Tipp! Tipp!

17

18 GridBagLayout Menüleiste JButton, 3 Spalten unbenutzt JTextArea, 2 Spalten, 2 Zeilen JButton, SOUTHEAST

19 NULL-Layout Kein Layoutmanager Kein Layoutmanager setLayout( null ); setLayout( null ); Feste Positionierung der Komponenten Feste Positionierung der Komponenten 1. Erzeugen der Komponente 2. Festlegung Position/Größe setSize(); setLocation(); setBounds(); 3. Registrieren der Komponente Fenstergröße setzen (kein pack()) Fenstergröße setzen (kein pack())

20

21 JFrame, GridLayout geschachtelte Layoutmanager JPanel, BorderLayout JPanel, GridLayout JPanel, GridBagLayout

22 Bewertung Viel Mühe und Zeit Viel Mühe und Zeit Viel Erfahrung nötig Viel Erfahrung nötig Frustration Frustration Abhängigkeiten komplexer Layouts Abhängigkeiten komplexer Layouts Unabdingbar für Plattformunabhängigkeit Unabdingbar für Plattformunabhängigkeit Ein Muss für Java-Programmierer Ein Muss für Java-Programmierer

23

24

25

26

27 Quellen GoTo Java 2,2. Auflage, GoTo Java 2,2. Auflage, Guido Krüger, Addison-Wesley Java professionell, Java professionell, Gerhard Wilhelms, Markus Kopp, MITP- Verlag


Herunterladen ppt "-Seminar- Java Layout Manager (JLM) Marc Dziadek."

Ähnliche Präsentationen


Google-Anzeigen