Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

AWT und JFC Abstract Windowing Toolkit

Ähnliche Präsentationen


Präsentation zum Thema: "AWT und JFC Abstract Windowing Toolkit"—  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 z.B: Swing-Button unter Windows ....
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
Vorteile von 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

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

10 Vergleich von AWT und 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 Vorteil: Volle Kontrolle  Nachteil: Keine Automatisierung
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 FlowLayout BorderLayout GridLayout 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 HTML-Datei Initialisierung mit init(); Ausführen mit start(); Klasse mit main-Methode AnalyseProgramm AnalyseKomponente extends JFrame

25 Die Klasse AnalyseProgramm: TEIL 1
import javax.swing.UIManager; import java.awt.*; public class AnalyseProgramm { // Konstruktor public AnalyseProgramm() { AnalyseKomponente frame = new AnalyseKomponente(); frame.setVisible(true); } Die Klasse AnalyseProgramm: TEIL 1 //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

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

27 Die Klasse AnalyseKomponente
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); }

28

29

30 Wie werden die Fenster-Elemente positioniert?

31 content pane

32 CENTER BorderLayout content pane SOUTH

33 CENTER CENTER BorderLayout content pane BorderLayout content pane SOUTH SOUTH

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"

Ähnliche Präsentationen


Google-Anzeigen