38

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

Embed Size (px)

Citation preview

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

AWT und JFC

• Abstract Windowing Toolkit - Bibliothek von JDK (sog. Package..)

- Seit JDK 1.0

einige Nachteile.....

• JavaTM Foundation Classes -Sammlung graphischer Dialogelemente

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

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

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

Das Model-View-Controller-Prinzip

Der Code wird nicht mehr in einer Klasse gepackt sondern…

- ModelVerarbeitungslogik der Komponenten

- ViewDarstellung

- ControllerEvents

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

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:

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

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)

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

Vergleich von AWT und Swing

• Gliederung der Swing-Elemente in:

• Kontrollelemente/Komponenten

• Container

• LayoutManager

• Events

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

Vergleich von AWT und Swing

AWT

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

Vergleich von AWT und Swing

Swing

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

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

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

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? ?

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

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

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

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

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

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

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

Menüleiste (MenuBar)ButtonsTextfelder ListenfensterGrafikenusw.

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

Menüleiste

Buttons

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

Listenfenster

Combo Boxen

Textfelder

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

• 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:

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

Es gibt zwei Arten Java-Programme

application applet

• Klasse mit main-Methode • HTML-Datei• Initialisierung mit init();• Ausführen mit start();AnalyseProgramm

AnalyseKomponenteextends JFrame

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

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

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

//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

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

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

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

Wie werden die Fenster-Elemente positioniert?

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

content pane

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

cont

ent p

ane

Bor

derL

ayou

t

SOUTH

CENTER

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

cont

ent p

ane

Bor

derL

ayou

t

SOUTH

CENTERCENTER

SOUTH

cont

ent p

ane

Bor

derL

ayou

t

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

jPanel2.add(jTabbedPane1, BorderLayout.CENTER);

jTabbedPane1.add(jPanel4, "Graphenschreiber");

jTabbedPane1.add(jPanel5, "Karnaugh-Diagramm");

jTabbedPane1.add(jPanel6, "Wertetabelle");

jTabbedPane1.setSelectedComponent(jPanel4);

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

Ein umfassenderes Beispiel ?

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