Swing - PowerPoint PPT Presentation

1 / 12
About This Presentation
Title:

Swing

Description:

Title: 1. OOP in Java Author: Michael Pohlig Last modified by: Pohlig Created Date: 4/15/2003 1:49:21 PM Document presentation format: Bildschirmpr sentation – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 13
Provided by: Michael4066
Category:
Tags: java | swing

less

Transcript and Presenter's Notes

Title: Swing


1
Swing
  • Ereignissteuerung

2
Auf Button-Klick reagieren
3
Auf Button-Klick reagieren
4
Auf Button-Klick reagieren
5
Auf Button-Klick reagieren
6
Auf Button-Klick reagieren
7
Auf Button-Klick reagieren
Programm beendet
8
Delegation Event Model
  • Seit Java 1.1 gibt es das Delegation Event
    Model,d.h. Schaltflächen, Fenster, usw. können
    Ereignisse wie ActionEvent (Schaltfläche
    gedrückt), WindowEvent (Fenster aktiviert,
    Fenster geschlossen, ...), MouseEvent
    (Mausknopf gedrückt, Maus bewegt, ...) usw.
    auslösen.
  • Das Senden von Ereignissen macht jedoch nur Sinn,
    wenn es zu jedem Ereignis auch einen
    entsprechenden Empfänger (z.B. JFrame) gibt, der
    auf die Ereignisse reagieren kann.
  • Deshalb muss sich ein Empfänger beim Sender
    registrieren. Das geschieht immer nach dem Muster
  • Sender.addXYZListener(Empfänger)
  • Der Empfänger muss für jede Ereignisart
    entsprechende Methoden bereitstellen, die diese
    Ereignisse behandeln (actionPerformed,
    windowActivated, windowClosed, mouseKlicked,
    mouseMoved, ...).

9
Delegation Event Model
  • Beispiel
  • Ein Programm enthält eine Schaltfläche jbKlick,
    die Aktionsereignisse (ActionEvent) auslösen
    kann, und eine Klasse MeinKlickAbhorcher, die
    für die Ereignisbehandlung zuständig ist.
  • Dann kann sich MeinKlickAbhorcher bei der
    Schaltfläche jbKlick mit
  • jbKlick.addActionListerner(new
    MeinKlickAbhorcher())
  • als Empfänger beim Sender jbKlick registrieren.
  • MeinKlickAbhorcher muss dabei die Methode
    actionPerformed implementieren.

10
Delegation Event Model
  • Oft ist es zu aufwändig, eigene Klassen zur
    Ereignisbehandlung zu schreiben.
  • Dann kann z.B. ein JFrame selbst ein
    Ereignisempfänger sein.
  • Das macht man, in dem der JFrame ein
    entsprechendes Interface zur Ereignisbehandlung
    implementiert
  • class MeinFrame extends JFrame
    implements ActionListener ...
  • Dann registriert sich MeinFrame beim Sender
    jbKlick mit der Anweisung
  • jbKlick.addActionListener(this)
  • JFrame muss die Methode actionPerformed
    implementieren.

11
Grundgerüst mit Ereignissteuerung
  • import java.awt.
  • import javax.swing.
  • import java.awt.event.
  • public class JRotGelbGruen extends JFrame
  • implements
    ActionListener

Im Konstruktor jbRot new
JButton("rot") jbRot.addActionListener(this)

public void actionPerformed(ActionEvent e)
Object obj e.getSource() if (obj
jbRot) jpButtons.setBackground(Color.RED)
if (obj jbGelb) jpButtons.setBackground(Color.
YELLOW)
12
Aufgabe
  • Erweitern Sie das Programm JRotGelbGruen zu
    JRotGelbGruenMagenta.
Write a Comment
User Comments (0)
About PowerShow.com