Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmieren mit JAVA

Ähnliche Präsentationen


Präsentation zum Thema: "Programmieren mit JAVA"—  Präsentation transkript:

1 Programmieren mit JAVA
Teil VI

2 Zusammenfassung Applikation vs. Applet
objektorientierte Programmierung Sprachbestandteile AWT

3 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

4 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) Components: Button, Scrollleisten, Fortschrittsanzeigen, Tabellen Pluggable Look and Feel: Frei wählbares aussehen, z.B. JAVA oder Windows „laf“ Entkopplung Funktionalität <-> Darstellung, auch Audio Schema möglich Accessibility API: Unterstützung von Eingabehilfen, z.B. Screen reader, Braille Displays Java 2D API (Java 2 Platform only) Erlaubt Entwicklern eine unkomplizierte Einbindung von high-quality 2D graphics, text, and images in applicationen und in applets. Drag and Drop Support Provides the ability to drag and drop between a Java application and a native application. The first three JFC features were implemented without any native code, relying only on the API defined in JDK 1.1. As a result, they could and did become available as an extension to JDK 1.1. This extension was released as JFC 1.1, which is sometimes called "the Swing release." The API in JFC 1.1 is often called "the Swing API." Note: "Swing" was the codename of the project that developed the new components. Although it's an unofficial name, it's frequently used to refer to the new components and related API. It's immortalized in the package names for the Swing API, which begin with javax.swing.

5 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.

6 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,Color.black)); getContentPane().add(label, BorderLayout.CENTER); }

7

8 Top Level Container Dialog Frame

9 allgemein nutzbare Komponenten
Panel Toolbar ScrollPane ist ein Container für automatisches horizontales und vertikales Scrolling, das genau ein Dialogelement aufnehmen kann. Scroll pane Split pane Tabbed pane

10 spezielle Container Internal frame Layered pane Root pane

11 Dialogelemente Schaltflächen Label Checkboxen (Kontrollkästchen)
Radiobutton (Optionsfelder) Auswahlmenüs Listenfelder Textbereiche und Textfelder Schieber und Bildlaufleisten eigene Dialogelemente

12 allgemeine Dialogelemente
Buttons Combo box List Eine Checkbox ist ein Eingabeelement, das eine Zustandsvariable besitzt, die zwischen den Werten true und false umgeschaltet werden kann. Der aktuelle Zustand wird durch ein Häkchen oder Kreuz in der Checkbox angezeigt. Eine CheckboxGroup ist die Java-Variante einer Gruppe von Radiobuttons, also einer Kollektion von Buttons, von denen immer genau einer aktiviert ist. Wird ein anderer Button aktiviert, so ändert er seinen internen Status auf true und der zuvor gesetzte wird false. Ein Button ist eine beschriftete Schaltfläche, die dazu verwendet wird, auf Knopfdruck des Anwenders Aktionen in der Fensterklasse auszulösen. Eine Combo Boxist ein aufklappbares Textfeld, dessen Inhalt aus einer vom Programm vorgegebenen Liste ausgewählt werden kann. Dialogelemente des Typs Choice entsprechen den unter Windows üblichen Drop-Down-Listboxen. Eine List ist eine listenartige Darstellung von Werten, aus denen der Anwender einen oder mehrere auswählen kann. Anders als ein Choice-Element ist ein Element der Klasse List ständig in voller Größe auf dem Bildschirm sichtbar. Unter Windows werden Objekte der Klasse List durch Listboxen dargestellt. Ein TextField dient zur Darstellung und zur Eingabe von Text. Sowohl der Anwender als auch das Programm können den dargestellten Text auslesen und verändern. Im Gegensatz zur Klasse TextField, bei der der Text auf eine einzige Zeile beschränkt ist, können mit der Klasse TextArea mehrzeilige Textfelder erzeugt werden. Zusätzlich kann der Text in alle Richtungen scrollen, so daß auch größere Texte bearbeitet werden können. Ein Scrollbar ist ein Schieberegler Menu Slider Textfield

13 unveränderbare Informationsanzeigen
Label Progress bar Ein Label dient zur Beschriftung von Dialogboxen. Es enthält eine Zeile Text, die auf dem Bildschirm angezeigt wird und vom Programm verändert werden kann. Tool tip

14 editierbare Anzeigen formatierter Informationen
Color chooser File chooser Table Text Tree

15 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 MouseMotionListener Komponente Komponente wird sichtbar ComponentListener Komponente erhält den Tastatur Fokus FocusListener Tabellen- oder Listenauswhl ändert sich ListSelectionListener Every time the user types a character or pushes a mouse button, an event occurs. Any object can be notified of the event. All it has to do is implement the appropriate interface and be registered as an event listener on the appropriate event source. Swing components can generate many kinds of events. Here are a few examples:

16 Ereignis Behandlung II
As the following figure shows, each event source can have multiple listeners registered on it. Conversely, a single listener can register with multiple event sources. Mehrere listener können sich registrieren, um bei Ereignissen von einem bestimmten Typ und einer bestimmten Quelle benach-richtigt zu werden.

17 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);

18 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... }

19 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); } }); Let's investigate a typical event-handling scenario by looking at how buttons (JButton) handle mouse clicks. To detect when the user clicks an on-screen button (or does the keyboard equivalent), a program must have an object that implements the ActionListener interface. The program must register this object as an action listener on the button (the event source), using the addActionListener method. When the user clicks the on-screen button, the button fires an action event. This results in the invocation of the action listener's actionPerformed method (the only method in the ActionListener interface). The single argument to the method is an ActionEvent object that gives information about the event and its source.


Herunterladen ppt "Programmieren mit JAVA"

Ähnliche Präsentationen


Google-Anzeigen