Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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
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
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
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:
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); }
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 ?
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.