Package | Class | Use | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## theater
Class Stage

    java.lang.Object
      theater.Stage

All Implemented Interfaces:
  java.io.Serializable, PixelArea

    public class Stage

extends java.lang.Object
implements PixelArea, java.io.Serializable

Die Gestaltung einer konkreten Bühne kann durch die Definition einer von der Klasse Stage abgeleiteten Klasse erfolgen. Eine Bühne besteht dabei aus einem rechteckigen Gebiet, das sich aus gleichförmigen quadratischen Zellen zusammensetzt. Die Größe der Bühne wird über einen Konstruktor durch die Anzahl an Spalten und Reihen sowie die Größe der Zellen in Pixeln festgelegt. Hierdurch wird ein Koordinatensystem definiert, das zum Platzieren von Komponenten, d.h. Akteuren und Requisiten, auf der Bühne dient. Das Koordinatensystem ist nicht endlich, so dass sich Akteure und Requisiten auch außerhalb der Bühne befinden können, also (zwischenzeitlich) nicht sichtbar sind.

Neben einer Menge von Getter-Methoden zum Abfragen des Zustands einer Bühne sowie Methoden zur Verwaltung von Maus- und Tastatur-Events lassen sich die Methoden der Klasse Stage einteilen in Methoden zur Gestaltung der Bühne und Methoden zur „Kollisionserkennung“.

Zu den Gestaltungsmethoden gehören add- und remove-Methoden zum Platzieren und Entfernen von Komponenten auf bzw. von der Bühne. Weiterhin existieren Methoden zum Festlegen eines Hintergrundbildes für die Bühne.

Achtung: In Solist kann maximal 1 Akteur auf der Bühne platziert werden: der Solist!

Über die Kollisionserkennungsmethoden lässt sich zur Laufzeit u. a. ermitteln, welche Komponenten sich aktuell in bestimmten Bereichen der Bühne aufhalten oder welche Komponenten (genauer gesagt deren Icons) sich berühren oder überlappen. Die Klasse Stage implementiert das Interface PixelArea und kann damit unmittelbar selbst in die Kollisionserkennung mit einbezogen werden.

Version:
  1.0 (03.11.2009)
Author:
  Dietrich Boles, Universität Oldenburg, Germany
See Also:
  Serialized Form

Constructor Summary
`Stage(int noOfCols, int noOfRows, int cellSize)` Über den Konstruktor wird die Größe der Bühne festgelegt.

Method Summary
`void` | `add(Prop comp, int col, int row)` Platziert eine neue Komponente auf der Bühne.
`boolean` | `contains(int x, int y)` Überprüft, ob der angegebene Punkt mit den Koordinaten x und y innerhalb der Bühne liegt.
`TheaterImage` | `getBackground()` Liefert das Hintergrundbild der Bühne als TheaterImage-Objekt.
`int` | `getCellSize()` Liefert die Größe der Zellen der Bühne in Pixeln
`java.util.List<Component>` | `getComponents(java.lang.Class<?>... classes)` Liefert eine Liste mit allen Komponenten bestimmter Klassen, die aktuell auf der Bühne platziert sind.
`java.util.List<Component>` | `getComponentsAt(int column, int row, java.lang.Class<?>... classes)` Liefert eine Liste mit allen Komponenten bestimmter Klassen, die aktuell auf einer bestimmten Zelle der Bühne platziert sind.
`java.util.List<Component>` | `getComponentsInside(PixelArea area, java.lang.Class<?>... classes)` Liefert eine Liste mit allen Komponenten bestimmter Klassen, deren zugeordnetes Icon vollständig innerhalb einer bestimmten PixelArea liegt.
`java.util.List<Component>` | `getIntersectingComponents(PixelArea area, java.lang.Class<?>... classes)` Liefert eine Liste mit allen Komponenten bestimmter Klassen, deren zugeordnetes Icon eine bestimmte PixelArea berührt oder schneidet.
`int` | `getNumberOfColumns()` Liefert die Anzahl an Spalten der Bühne.
`int` | `getNumberOfRows()` Liefert die Anzahl an Reihen der Bühne.
`Actor` | `getSolist()` liefert den aktuellen Solist
`boolean` | `intersects(PixelArea area)` Überprüft, ob die Bühne eine angegebene PixelArea berührt oder schneidet.
`boolean` | `isHandlingKeyEvents()` Überprüft, ob die Bühne Tastatur-Ereignisse behandelt.
`boolean` | `isHandlingMouseEvents()` Überprüft, ob die Bühne Maus-Ereignisse behandelt.
`boolean` | `isInside(PixelArea area)` Überprüft, ob die Bühne vollständig innerhalb der angegebenen PixelArea liegt.
`void` | `keyPressed(KeyInfo e)` Wird aufgerufen, wenn während die Bühne den Focus besitzt ein keyPressed-Event eingetreten ist.
`void` | `keyReleased(KeyInfo e)` Wird aufgerufen, wenn während die Bühne den Focus besitzt ein keyReleased-Event eingetreten ist.
`void` | `keyTyped(KeyInfo e)` Wird aufgerufen, wenn während die Bühne den Focus besitzt ein keyTyped-Event eingetreten ist.
`void` | `mouseClicked(MouseInfo e)` Wird aufgerufen, wenn ein mouseClicked-Event auf der Bühne eingetreten ist, d.h. eine Maustaste geklickt wurde, während sich der Mauszeiger oberhalb der Bühne befindet.
`void` | `mouseDragged(MouseInfo e)` Wird aufgerufen, wenn ein mouseDragged-Event auf der Bühne eingetreten ist, d.h. die Maus bei gedrückter Maustaste bewegt wurde, während sich der Mauszeiger oberhalb der Bühne befindet.
`void` | `mouseEntered(MouseInfo e)` Wird aufgerufen, wenn ein mouseEntered-Event auf der Bühne eingetreten ist, d.h. der Mauszeiger auf die Bühne gezogen wird.
`void` | `mouseExited(MouseInfo e)` Wird aufgerufen, wenn ein mouseExited-Event auf der Bühne eingetreten ist, d.h. der Mauszeiger die Bühne verlässt.
`void` | `mouseMoved(MouseInfo e)` Wird aufgerufen, wenn ein mouseMoved-Event auf der Bühne eingetreten ist, d.h. die Maus bewegt wurde, während sich der Mauszeiger oberhalb der Bühne befindet.
`void` | `mousePressed(MouseInfo e)` Wird aufgerufen, wenn ein mousePressed-Event auf der Bühne eingetreten ist, d.h. eine Maustaste gedrückt wird, während sich der Mauszeiger oberhalb der Bühne befindet.
`void` | `mouseReleased(MouseInfo e)` Wird aufgerufen, wenn ein mouseReleased-Event auf der Bühne eingetreten ist, d.h. eine gedrückte Maustaste losgelassen wird, während sich der Mauszeiger oberhalb der Bühne befindet.
`void` | `paint()` Zeichnet die Bühne.
`void` | `remove(Component comp)` Entfernt eine Komponente von der Bühne.
`void` | `remove(java.util.List<Component> components)` Entfernt alle Komponenten der Liste von der Bühne.
`void` | `setBackground(java.lang.String filename)` Ordnet der Bühne ein Hintergrundbild zu.
`void` | `setBackground(TheaterImage image)` Ordnet der Bühne ein TheaterImage als Hintergrundbild zu.
`void` | `setHandlingKeyEvents(boolean handlingKeyEvents)` Legt fest, ob die Bühne Tastatur-Ereignisse behandeln soll.
`void` | `setHandlingMouseEvents(boolean handlingMouseEvents)` Legt fest, ob die Bühne Maus-Ereignisse behandeln soll.
`void` | `setSize(int noOfCols, int noOfRows)` Ändert die Größe der Bühne
`void` | `setSize(int noOfCols, int noOfRows, int cellSize)` Ändert die Größe der Bühne
`void` | `setSolist(Actor solist, int col, int row)` Platziert den Solist auf der Bühne.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Stage

    public Stage(int noOfCols,
                 int noOfRows,
                 int cellSize)

  Über den Konstruktor wird die Größe der Bühne festgelegt. Eine Bühne besteht dabei aus einem rechteckigen Gebiet, das sich aus gleichförmigen quadratischen Zellen zusammensetzt.

  Parameters:
    `noOfCols` - Anzahl der Spalten der Bühne
    `noOfRows` - Anzahl der Reihen der Bühne
    `cellSize` - Größe einer Zelle in Pixeln

Method Detail

### add

    public void add(Prop comp,
                    int col,
                    int row)

  Platziert eine neue Komponente auf der Bühne. Angegeben werden die Spalte und Reihe der Zelle, auf der die Komponente platziert werden soll. Unter Platzierung ist dabei zu verstehen, dass der Mittelpunkt des Icons, das die Komponente repräsentiert, auf den Mittelpunkt der Zelle gesetzt wird. Da das Koordinatensystem der Bühne nicht begrenzt ist, kann eine Komponente auch außerhalb der Bühne platziert werden. Wenn die Komponente bereits auf der Bühne platziert ist, passiert nichts.

  Seiteneffekt: Nach erfolgreicher Platzierung der Komponente auf der Bühne wird die Methode addedToStage der Komponente mit dem entsprechenden Stage-Objekt als Parameter aufgerufen.

  Parameters:
    `comp` - die Komponente, die auf der Bühne platziert werden soll (darf nicht null sein)
    `col` - die Spalte, in der die Komponente platziert werden soll
    `row` - die Reihe, in der die Komponente platziert werden soll

### contains

    public boolean contains(int x,
                            int y)

  Überprüft, ob der angegebene Punkt mit den Koordinaten x und y innerhalb der Bühne liegt.

  Specified by:
    `contains` in interface `PixelArea`
  Parameters:
    `x` - x-Koordinate des Punktes
    `y` - y-Koordinate des Punktes
  Returns:
    true, falls der angegebene Punkt innerhalb der Bühne liegt
  See Also:
    `PixelArea.contains(int, int)`

### getBackground

    public TheaterImage getBackground()

  Liefert das Hintergrundbild der Bühne als TheaterImage-Objekt. Wurde kein Hintergrundbild gesetzt, wird null geliefert.

  Returns:
    das Hintergrundbild der Bühne als TheaterImage-Objekt

### getCellSize

    public int getCellSize()

  Liefert die Größe der Zellen der Bühne in Pixeln

  Returns:
    die Größe der Zellen der Bühne in Pixeln

### getComponents

    public java.util.List<Component> getComponents(java.lang.Class<?>... classes)

  Liefert eine Liste mit allen Komponenten bestimmter Klassen, die aktuell auf der Bühne platziert sind. Fehlt der Parameter, werden alle Bühnen-Komponenten geliefert.

  Parameters:
    `classes` - Menge von Klassen, die bei der Suche berücksichtigt werden sollen
  Returns:
    Liste mit allen Bühnen-Komponenten bestimmter Klassen

### getComponentsAt

    public java.util.List<Component> getComponentsAt(int column,
                                                     int row,
                                                     java.lang.Class<?>... classes)

  Liefert eine Liste mit allen Komponenten bestimmter Klassen, die aktuell auf einer bestimmten Zelle der Bühne platziert sind. Werden keine Klassenobjekte übergeben, so werden alle Bühnen-Komponenten auf der entsprechenden Zelle geliefert.

  Parameters:
    `column` - Spalte der Zelle
    `row` - Reihe der Zelle
    `classes` - Menge von Klassen, die bei der Suche berücksichtigt werden sollen
  Returns:
    Liste mit allen Bühnen-Komponenten bestimmter Klassen auf der angegebenen Zelle

### getComponentsInside

    public java.util.List<Component> getComponentsInside(PixelArea area,
                                                         java.lang.Class<?>... classes)

  Liefert eine Liste mit allen Komponenten bestimmter Klassen, deren zugeordnetes Icon vollständig innerhalb einer bestimmten PixelArea liegt. Werden keine Klassenobjekte übergeben, so werden alle Bühnen-Komponenten innerhalb der PixelArea geliefert.

  Parameters:
    `area` - das Gebiet, in dem die Komponenten liegen sollen (darf nicht null sein)
    `classes` - Menge von Klassen, die bei der Suche berücksichtigt werden sollen
  Returns:
    Liste mit allen Bühnen-Komponenten bestimmter Klassen innerhalb der angegebenen PixelArea

### getIntersectingComponents

    public java.util.List<Component> getIntersectingComponents(PixelArea area,
                                                               java.lang.Class<?>... classes)

  Liefert eine Liste mit allen Komponenten bestimmter Klassen, deren zugeordnetes Icon eine bestimmte PixelArea berührt oder schneidet. Werden keine Klassenobjekte übergeben, so werden alle Bühnen-Komponenten geliefert, die die PixelArea berühren oder schneiden.

  Parameters:
    `area` - das Gebiet, das die Komponenten berühren oder schneiden sollen (darf nicht null sein)
    `classes` - Menge von Klassen, die bei der Suche berücksichtigt werden sollen
  Returns:
    Liste mit allen Bühnen-Komponenten bestimmter Klassen, die die angegebene PixelArea berühren oder schneiden

### getNumberOfColumns

    public int getNumberOfColumns()

  Liefert die Anzahl an Spalten der Bühne.

  Returns:
    die Anzahl an Spalten der Bühne

### getNumberOfRows

    public int getNumberOfRows()

  Liefert die Anzahl an Reihen der Bühne.

  Returns:
    die Anzahl an Reihen der Bühne

### getSolist

    public Actor getSolist()

  liefert den aktuellen Solist

  Returns:
    der aktuelle Solist oder null

### intersects

    public boolean intersects(PixelArea area)

  Überprüft, ob die Bühne eine angegebene PixelArea berührt oder schneidet.

  Specified by:
    `intersects` in interface `PixelArea`
  Parameters:
    `area` - das Gebiet, das überprüft werden soll (darf nicht null sein)
  Returns:
    true, falls die Bühne die angegebenen PixelArea berührt oder schneidet
  See Also:
    `PixelArea.intersects(theater.PixelArea)`

### isHandlingKeyEvents

    public boolean isHandlingKeyEvents()

  Überprüft, ob die Bühne Tastatur-Ereignisse behandelt. Standardmäßig ist dies in Solist nicht der Fall.

  Returns:
    true, falls die Bühne Tastatur-Ereignisse behandelt

### isHandlingMouseEvents

    public boolean isHandlingMouseEvents()

  Überprüft, ob die Bühne Maus-Ereignisse behandelt. Standardmäßig ist dies in Solist nicht der Fall.

  Returns:
    true, falls die Bühne Maus-Ereignisse behandelt

### isInside

    public boolean isInside(PixelArea area)

  Überprüft, ob die Bühne vollständig innerhalb der angegebenen PixelArea liegt.

  Specified by:
    `isInside` in interface `PixelArea`
  Parameters:
    `area` - das Gebiet, das überprüft werden soll (darf nicht null sein)
  Returns:
    true, falls die Bühne vollständig innerhalb der angegebenen PixelArea liegt
  See Also:
    `PixelArea.isInside(theater.PixelArea)`

### keyPressed

    public void keyPressed(KeyInfo e)

  Wird aufgerufen, wenn während die Bühne den Focus besitzt ein keyPressed-Event eingetreten ist. Soll eine Bühne auf keyPressed-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu keyPressed-Events finden sich in der Klasse java.awt.event.KeyListener. Übergeben wird der Methode ein KeyInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingKeyEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf keyPressed-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### keyReleased

    public void keyReleased(KeyInfo e)

  Wird aufgerufen, wenn während die Bühne den Focus besitzt ein keyReleased-Event eingetreten ist. Soll eine Bühne auf keyReleased-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu keyReleased-Events finden sich in der Klasse java.awt.event.KeyListener. Übergeben wird der Methode ein KeyInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingKeyEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf keyReleased-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### keyTyped

    public void keyTyped(KeyInfo e)

  Wird aufgerufen, wenn während die Bühne den Focus besitzt ein keyTyped-Event eingetreten ist. Soll eine Bühne auf keyTyped-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu keyTyped-Events finden sich in der Klasse java.awt.event.KeyListener. Übergeben wird der Methode ein KeyInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingKeyEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf keyTyped-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### mouseClicked

    public void mouseClicked(MouseInfo e)

  Wird aufgerufen, wenn ein mouseClicked-Event auf der Bühne eingetreten ist, d.h. eine Maustaste geklickt wurde, während sich der Mauszeiger oberhalb der Bühne befindet. Soll eine Bühne auf mouseClicked-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu mouseClicked-Events finden sich in der Klasse java.awt.event.MouseListener. Übergeben wird der Methode ein MouseInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf mouseClicked-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### mouseDragged

    public void mouseDragged(MouseInfo e)

  Wird aufgerufen, wenn ein mouseDragged-Event auf der Bühne eingetreten ist, d.h. die Maus bei gedrückter Maustaste bewegt wurde, während sich der Mauszeiger oberhalb der Bühne befindet. Soll eine Bühne auf mouseDragged-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu mouseDragged-Events finden sich in der Klasse java.awt.event.MouseMotionListener. Übergeben wird der Methode ein MouseInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf mouseDragged-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### mouseEntered

    public void mouseEntered(MouseInfo e)

  Wird aufgerufen, wenn ein mouseEntered-Event auf der Bühne eingetreten ist, d.h. der Mauszeiger auf die Bühne gezogen wird. Soll eine Bühne auf mouseEntered-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu mouseEntered-Events finden sich in der Klasse java.awt.event.MouseListener. Übergeben wird der Methode ein MouseInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf mouseEntered-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### mouseExited

    public void mouseExited(MouseInfo e)

  Wird aufgerufen, wenn ein mouseExited-Event auf der Bühne eingetreten ist, d.h. der Mauszeiger die Bühne verlässt. Soll eine Bühne auf mouseExited-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu mouseExited-Events finden sich in der Klasse java.awt.event.MouseListener. Übergeben wird der Methode ein MouseInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf mouseExited-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### mouseMoved

    public void mouseMoved(MouseInfo e)

  Wird aufgerufen, wenn ein mouseMoved-Event auf der Bühne eingetreten ist, d.h. die Maus bewegt wurde, während sich der Mauszeiger oberhalb der Bühne befindet. Soll eine Bühne auf mouseMoved-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu mouseMoved-Events finden sich in der Klasse java.awt.event.MouseMotionListener. Übergeben wird der Methode ein MouseInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf mouseMoved-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### mousePressed

    public void mousePressed(MouseInfo e)

  Wird aufgerufen, wenn ein mousePressed-Event auf der Bühne eingetreten ist, d.h. eine Maustaste gedrückt wird, während sich der Mauszeiger oberhalb der Bühne befindet. Soll eine Bühne auf mousePressed-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu mousePressed-Events finden sich in der Klasse java.awt.event.MouseListener. Übergeben wird der Methode ein MouseInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf mousePressed-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### mouseReleased

    public void mouseReleased(MouseInfo e)

  Wird aufgerufen, wenn ein mouseReleased-Event auf der Bühne eingetreten ist, d.h. eine gedrückte Maustaste losgelassen wird, während sich der Mauszeiger oberhalb der Bühne befindet. Soll eine Bühne auf mouseReleased-Events reagieren, muss sie diese Methode entsprechend überschreiben. Genauere Informationen zu mouseReleased-Events finden sich in der Klasse java.awt.event.MouseListener. Übergeben wird der Methode ein MouseInfo-Objekt, über das Details zum eingetretenen Event abgefragt werden können.

  Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig nicht der Fall ist).

  Sowohl die Bühne als auch Komponenten können auf mouseReleased-Events reagieren. Die Reihenfolge, in der eine Benachrichtigung erfolgt, richtet sich nach der Zeichenreihenfolge der Komponenten: Je weiter eine Komponente im Vordergrund ist, desto früher wird sie benachrichtigt. Die Bühne wird nach allen Komponenten benachrichtigt. Durch Konsumieren des Events, kann die Benachrichtigungssequenz abgebrochen werden.

  Parameters:
    `e` - enthält Details zum eingetretenen Event

### paint

    public void paint()

  Zeichnet die Bühne. Normalerweise ist ein Aufruf dieser Methode nicht notwendig, da die Bühne bei Änderungen automatisch aktualisiert wird. Wenn allerdings mittels der Methode getAWTImage der Klasse TheaterImage ein java.awt.image.BufferedImage-Objekt erfragt und geändert wird, muss diese Methode aufgerufen werden, wenn die Änderungen des Image unmittelbar sichtbar gemacht werden sollen.

### remove

    public void remove(Component comp)

  Entfernt eine Komponente von der Bühne. Wenn die Komponente nicht auf der Bühne platziert ist, passiert nichts. Achtung: Der Solist kann nicht von der Bühne entfernt werden!

  Parameters:
    `comp` - die Komponente, die von der Bühne entfernt werden soll

### remove

    public void remove(java.util.List<Component> components)

  Entfernt alle Komponenten der Liste von der Bühne. Achtung: Der Solist kann nicht von der Bühne entfernt werden!

  Parameters:
    `components` - enthält die Komponenten, die von der Bühne entfernt werden sollen

### setBackground

    public final void setBackground(java.lang.String filename)
                             throws java.lang.IllegalArgumentException

  Ordnet der Bühne ein Hintergrundbild zu. Erlaubt sind Bilder der Formate gif, jpg und png. Das Bild wird mit der linken oberen Ecke auf die linke obere Ecke der Bühne platziert. Ist das Bild größer als die Bühne, wird rechts und/oder unten abgeschnitten. Ist das Bild kleiner als die Bühne, wird es repliziert dargestellt, bis die komplette Bühne überdeckt ist.

  Parameters:
    `filename` - Name der Bilddatei; die Datei muss sich im Unterverzeichnis image des Theaterstück-Verzeichnisses befinden
  Throws:
    `java.lang.IllegalArgumentException` - wird geworfen, wenn die angegebene Datei keine gültige lesbare Bilddatei ist

### setBackground

    public final void setBackground(TheaterImage image)

  Ordnet der Bühne ein TheaterImage als Hintergrundbild zu. Das Bild wird mit der linken oberen Ecke auf die linke obere Ecke der Bühne platziert. Ist das Bild größer als die Bühne, wird rechts und/oder unten abgeschnitten. Ist das Bild kleiner als die Bühne, wird es repliziert dargestellt, bis die komplette Bühne überdeckt ist.

  Parameters:
    `image` - das TheaterImage, das als Hintergrundbild verwendet werden soll

### setHandlingKeyEvents

    public void setHandlingKeyEvents(boolean handlingKeyEvents)

  Legt fest, ob die Bühne Tastatur-Ereignisse behandeln soll. Standardmäßig ist dies in Solist nicht der Fall.

  Parameters:
    `handlingKeyEvents` - true, falls die Bühne Tastatur-Ereignisse behandeln soll; false andernfalls.

### setHandlingMouseEvents

    public void setHandlingMouseEvents(boolean handlingMouseEvents)

  Legt fest, ob die Bühne Maus-Ereignisse behandeln soll. Standardmäßig ist dies in Solist nicht der Fall.

  Parameters:
    `handlingMouseEvents` - true, falls die Bühne Maus-Ereignisse behandeln soll; false andernfalls.

### setSize

    public void setSize(int noOfCols,
                        int noOfRows)

  Ändert die Größe der Bühne

  Parameters:
    `noOfCols` - Anzahl an Spalten
    `noOfRows` - Anzahl an Reihen

### setSize

    public void setSize(int noOfCols,
                        int noOfRows,
                        int cellSize)

  Ändert die Größe der Bühne

  Parameters:
    `noOfCols` - Anzahl an Spalten
    `noOfRows` - Anzahl an Reihen
    `cellSize` - Größe jeder Zelle

### setSolist

    public void setSolist(Actor solist,
                          int col,
                          int row)

  Platziert den Solist auf der Bühne. Befindet sich bereits ein anderer Solist auf der Bühne, wird dieser entfernt.

  Angegeben werden die Spalte und Reihe der Zelle, auf der der Solist platziert werden soll. Unter Platzierung ist dabei zu verstehen, dass der Mittelpunkt des Icons, das den Solist repräsentiert, auf den Mittelpunkt der Zelle gesetzt wird. Da das Koordinatensystem der Bühne nicht begrenzt ist, kann der Solist auch außerhalb der Bühne platziert werden. Wenn der Solist bereits auf der Bühne platziert ist, passiert nichts.

  Seiteneffekt: Nach erfolgreicher Platzierung des Solist auf der Bühne wird dessen Methode addedToStage mit dem entsprechenden Stage-Objekt als Parameter aufgerufen.

  Parameters:
    `solist` - der Solist
    `col` - Spalte, in der der Solist platziert werden soll
    `row` - Reihe, in der der Solist platziert werden soll

Package | Class | Use | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD