Lektion6

Werbung
Programmieren mit JAVA
Teil VI
Zusammenfassung
•
•
•
•
Applikation vs. Applet
objektorientierte Programmierung
Sprachbestandteile
AWT
Erzeugen einer grafischen
Benutzungsoberfläche
• bis JDK 1.1 per AWT
• seit JAVA 2 per JFC/Swing
• JFC ist die Abkürzung für Java Foundation Classes
• Sammlung von Klassen speziell für den Aufbau von
Benutzungsoberflächen
• erstmals vorgestellt 1997
Features der JFC
• The Swing Components
• Pluggable Look and Feel Support
• Accessibility API
• Java 2D API (Java 2 Platform only)
• Drag and Drop Support (Java 2 Platform only)
Warum Swing ...
... und nicht AWT?
• Swing benutzt keinen native code!!
• Swing Button und Labels können auch Bilder anstelle
von oder zusätzlich zu Text darstellen.
• Swing Komponenten müssen nicht rechteckig sein.
Buttons können z.B. rund sein.
• Ein einfacher Zugriff auf Bildschirmelemente erlaubt
z.B. einer Braille Anzeige das Auslesen einer Textbox
oder der Beschriftung eines Buttons oder Labels.
Eine einfache Swing Anwendung
import javax.swing.*;
import java.awt.*;
public class HelloSwingApplet extends JApplet {
public void init() {
JLabel label = new JLabel("You are successfully running a
Swing applet!");
label.setHorizontalAlignment(JLabel.CENTER);
label.setBorder(BorderFactory.createMatteBorder(1,1,2,2,C
olor.black));
getContentPane().add(label, BorderLayout.CENTER);
}
}
Top Level Container
Dialog
Frame
allgemein nutzbare Komponenten
Panel
Scroll pane
Toolbar
Split pane
Tabbed pane
spezielle Container
Internal frame
Layered pane
Root pane
Dialogelemente
•
•
•
•
•
•
•
•
•
Schaltflächen
Label
Checkboxen (Kontrollkästchen)
Radiobutton (Optionsfelder)
Auswahlmenüs
Listenfelder
Textbereiche und Textfelder
Schieber und Bildlaufleisten
eigene Dialogelemente
allgemeine Dialogelemente
Buttons
Combo box
List
Menu
Slider
Textfield
unveränderbare
Informationsanzeigen
Label
Progress bar
Tool tip
editierbare Anzeigen
formatierter Informationen
Color chooser
Table
File chooser
Text
Tree
Ereignis Behandlung
(Event Handling)
Aktion, die ein Ereignis auslöst
Listener Typ
User klickt auf einen Button, drückt Return
während er in ein Textfeld schreibt oder
ActionListener
wählt einen Menüeintrag aus
User schliesst einen frame (main window)
WindowListener
User drückt eine Maustaste während sich
MouseListener
der Cursor über einer Komponente befindet
User bewegt die Maus über eine
Komponente
MouseMotionListener
Komponente wird sichtbar
ComponentListener
Komponente erhält den Tastatur Fokus
FocusListener
Tabellen- oder Listenauswhl ändert sich
ListSelectionListener
Ereignis Behandlung II
Mehrere listener können sich registrieren, um bei Ereignissen von
einem bestimmten Typ und einer bestimmten Quelle benachrichtigt zu werden.
Implementierung der
Ereignis Behandlung
Jeder Event Handler benötigt 3 Codestücke:
In der Deklaration für die Event Handler Klasse Code, der
spezifiziert, dass die Klasse entweder ein Listener Interface
implementiert oder von einer Klasse erbt, die das Listener
Interface implementiert hat. Zum Beispiel:
public class MyClass implements ActionListener {
Code, der eine Instanz des Event Handlers als Listener für eine
oder mehrere Komponenten registriert. Zum Beispiel:
someComponent.addActionListener(instanceOfMyClass);
Implementierung der
Ereignis Behandlung II
Code, der eine Methode des Listener Interfaces implementiert.
Zum Beispiel:
public void actionPerformed(ActionEvent e) {
...//code that reacts to the action...
}
Ereignis Behandlung
Ein Beispiel
JButton button = new JButton("I'm a Swing button!");
button.setMnemonic(KeyEvent.VK_I);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numClicks++;
label.setText(labelPrefix + numClicks);
}
});
Herunterladen