Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

AWT und JFC Abstract Windowing Toolkit - Bibliothek von JDK (sog. Package..) - Seit JDK 1.0 einige Nachteile..... JavaTM Foundation Classes -Sammlung.

Ähnliche Präsentationen


Präsentation zum Thema: "AWT und JFC Abstract Windowing Toolkit - Bibliothek von JDK (sog. Package..) - Seit JDK 1.0 einige Nachteile..... JavaTM Foundation Classes -Sammlung."—  Präsentation transkript:

1

2 AWT und JFC Abstract Windowing Toolkit - Bibliothek von JDK (sog. Package..) - Seit JDK 1.0 einige Nachteile..... JavaTM Foundation Classes -Sammlung graphischer Dialogelemente

3 Swing Erweiterung von AWT Eigenschaften - GUI-Elemente werden selbst erzeugt Im JDK1.1 eingeführt Leichtgewichtige Komponenten und Schwergewichtige Komponenten im AWT z.B: Swing-Button unter Windows Debug-Graphik - Look-and-Feel Auswahlmöglichkeiten Umschaltung von Anwendung zur Laufzeit

4 Das Model-View-Controller-Prinzip Der Code wird nicht mehr in einer Klasse gepackt sondern… - Model Verarbeitungslogik der Komponenten - View Darstellung - Controller Events

5

6 Vergleich von AWT und Swing Swing-Komponenten haben einige neue Features zur Verfügung Swing-Komponenten sind alle in JAVA implementiert Swing Komponente verfügen über ein einheitliches dynamisches Look and Feel standardisiert Swing hat doppelt so viele Komponenten wie das AWT komfortableres Programmieren, viele sog. widgets wie z.B. Standarddialoge Vorteile von Swing:

7 Vergleich von AWT und Swing Wichtige Merkmale: zu jeder AWT-Komponente des AWT gibt es entsprechende Swing-Komponenten, diese beginnen mit J- z.B. JButton statt Button zusätzlich ein neues Set an Komponenten Swing-Komponenten sind alle Subklassen der Klasse JComponent alle Elemente von Swing sind Bestandteil des Paketes javax.swing Vererbungsunterschiede zwischen AWT und Swing (siehe Diagramm)

8 Vergleich von AWT und Swing Gliederung der Swing-Elemente in: Kontrollelemente/Komponenten Container LayoutManager Events

9 Vergleich von AWT und Swing AWT

10 Vergleich von AWT und Swing Swing

11

12 Swing-Container dienen als Behältnis für Komponenten Anordnung der Komponenten in einem rechteckigen Bereich Beispiele für Container: JFrame JWindow JPanel JDialog normale Fenster mit Rahmen & Titel Fenster ohne Rahmen & Titel (z.B. Popup-Menu) Ausschnitt eines Fensters können beliebig ineinander verschachtelt werden Fenster, das zu einem Oberfenster gehört

13 Hinzufügen von Komponenten mit Hilfe der Methode void add(JComponent comp) wird von jedem Container implementiert Beispiel: JButton okButton = new Button(OK); JPanel panel = new JPanel(); panel.add(okButton); Frage: Wie werden die Komponenten in dem Container angeordnet ??

14 Zuordnung von Layout-Managern mit der Methode void setLayout(LayoutManager manager); wird ebenfalls von jedem Container implementiert Aufruf mit dem Argument null Standard-Layout-Manager Komponenten müssen von Hand mit der Methode void setBounds(int x, int y, int w, int h); skaliert und angeordnet werden Vorteil: Volle Kontrolle Nachteil: Keine Automatisierung

15 FlowLayoutBorderLayoutGridLayout Anordnung wie Wörter in einem Text Ausrichtung einstellbar hier: zentriert Anordnung am Rahmen nach Himmelsrichtungen (NORTH, SOUTH, EAST, WEST) und im Zentrum (CENTER) Anordnung in einem regelmäßigen Gitter hier: 2 x 3 - Gitter

16

17 In die Container kommen die verschieden Komponenten diese werden von der Java-Swing Bibliothek angeboten Meist werden aber auch noch einige Klassen von AWT benötigt

18 Menüleiste (MenuBar) Buttons Textfelder Listenfenster Grafiken usw.

19 Menüleiste Buttons

20 Listenfenster Combo Boxen Textfelder

21 durch z.B. zusätzliche Tool Tips diese kennt man aus der gesamten Windows Welt wenn man länger mit der Maus an einer Stelle verweilt Beispiel:

22

23

24 Es gibt zwei Arten Java-Programme application applet Klasse mit main-Methode HTML-Datei Initialisierung mit init(); Ausführen mit start(); AnalyseProgramm AnalyseKomponente extends JFrame

25 import javax.swing.UIManager; import java.awt.*; public class AnalyseProgramm { // Konstruktor public AnalyseProgramm() { AnalyseKomponente frame = new AnalyseKomponente(); frame.setVisible(true); } //Center the window Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); Kleingedrucktes: passt das Fenster an. Fenster wird sichtbar gesetzt Die Klasse AnalyseProgramm: TEIL 1

26 //Main method public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeel ClassName()); } catch(Exception e) { e.printStackTrace(); } new AnalyseProgramm(); } Die Klasse AnalyseProgramm: TEIL 2 main-Methode Erzeugung des Fensters

27 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class AnalyseKomponente extends JFrame { // Komponenten werden angelegt... // Rahmen wird konstruiert... // Komponenten werden initialisiert... jPanel2.add(jTabbedPane1, BorderLayout.CENTER); jTabbedPane1.add(jPanel4, "Graphenschreiber"); jTabbedPane1.add(jPanel5, "Karnaugh-Diagramm"); jTabbedPane1.add(jPanel6, "Wertetabelle"); jTabbedPane1.setSelectedComponent(jPanel4);... } Die Klasse AnalyseKomponente

28

29

30 Wie werden die Fenster-Elemente positioniert?

31 content pane

32 BorderLayout SOUTH CENTER

33 content pane BorderLayout SOUTH CENTER SOUTH content pane BorderLayout

34 jPanel2.add(jTabbedPane1, BorderLayout.CENTER); jTabbedPane1.add(jPanel4, "Graphenschreiber"); jTabbedPane1.add(jPanel5, "Karnaugh-Diagramm"); jTabbedPane1.add(jPanel6, "Wertetabelle"); jTabbedPane1.setSelectedComponent(jPanel4);

35 Ein umfassenderes Beispiel ?

36

37

38


Herunterladen ppt "AWT und JFC Abstract Windowing Toolkit - Bibliothek von JDK (sog. Package..) - Seit JDK 1.0 einige Nachteile..... JavaTM Foundation Classes -Sammlung."

Ähnliche Präsentationen


Google-Anzeigen