|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.Thread theater.Component
public class Component
Die Klasse Component ist von der Java-Klasse Thread abgeleitet, erlaubt also die Erzeugung von Threads. Sie definiert Methoden zur Verwaltung von Akteuren und Requisiten, die sie an die von ihr abgeleiteten Klassen Actor und Prop vererbt. Die Klassen Actor und Prop unterscheiden sich nur dadurch, dass von Actor abgeleitete Klassen die Thread-Methode run überschreiben, also Threads definieren können. Bei Unterklassen von Prop wird dies dadurch verhindert, dass die run-Methode in der Klasse Prop als leere final-Methode definiert wird.
Die wichtigsten Methoden der Klasse Component sind Methoden, um Akteuren und Requisiten ein Icon zuzuordnen und sie auf der Bühne bewegen, also umplatzieren oder bspw. rotieren zu können. Weiterhin ist eine Menge von Getter-Methoden definiert, um zum einen ihren Zustand abfragen und zum anderen das Bühnen-Objekt ermitteln zu können, dem sie u.U. zugeordnet sind.
Wie die Klasse Stage enthält die Klasse Component darüber hinaus Kollisionserkennungsmethoden zum Entdecken von Kollisionen der entsprechenden Komponente mit anderen Komponenten sowie Methoden zur Verwaltung von Maus- und Tastatur-Events. Die Klasse Component implementiert das Interface PixelArea, so dass Akteure und Requisiten unmittelbar selbst in die Kollisionserkennung mit einbezogen werden können.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class java.lang.Thread |
---|
Thread.State, Thread.UncaughtExceptionHandler |
Field Summary | |
---|---|
static int |
DEF_Z_COORDINATE
Standardmäßiger Wert der Z-Koordinate |
Fields inherited from class java.lang.Thread |
---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary | |
---|---|
protected |
Component(boolean isActor)
Konstruktor, der eine neue Komponente als Akteur oder Requisite initialisiert. |
Method Summary | |
---|---|
void |
addedToStage(Stage stage)
Mit Hilfe der add-Methode der Klasse Stage kann eine Komponente auf einer Bühne platziert werden. |
boolean |
contains(int x,
int y)
Überprüft, ob der angegebene Punkt mit den Koordinaten x und y innerhalb des Icons der Komponente liegt. |
Cell |
getCell()
Liefert die Zelle, in der sich die Komponente aktuell auf einer Bühne befindet. |
int |
getColumn()
Liefert die Spalte, in der sich die Komponente aktuell auf einer Bühne befindet. |
TheaterImage |
getImage()
Liefert das Icon der Komponente als TheaterImage-Objekt. |
int |
getRotation()
Liefert den aktuellen Rotationswinkel der Komponente. |
int |
getRow()
Liefert die Reihe, in der sich die Komponente aktuell auf einer Bühne befindet. |
Stage |
getStage()
Liefert das Objekt der Bühne, auf dem sich die Komponente gerade befindet oder null, falls sich die Komponente aktuell auf keiner Bühne befindet |
int |
getZCoordinate()
Liefert die aktuelle z-Koordinate der Komponente. |
boolean |
intersects(PixelArea area)
Überprüft, ob das Icon der Komponente eine angegebene PixelArea schneidet. |
boolean |
isHandlingKeyEvents()
Überprüft, ob die Komponente Tastatur-Ereignisse behandelt. |
boolean |
isHandlingMouseEvents()
Überprüft, ob die Komponente Maus-Ereignisse behandelt. |
boolean |
isInside(PixelArea area)
Überprüft, ob das Icon der Komponente vollständig innerhalb der angegebenen PixelArea liegt. |
boolean |
isVisible()
Liefert die Sichtbarkeit der Komponente. |
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 Komponente eingetreten ist, d.h. eine Maustaste geklickt wurde, während sich der Mauszeiger auf dem Icons der Komponente befindet. |
void |
mouseDragged(MouseInfo e)
Wird aufgerufen, wenn ein mouseDragged-Event auf der Komponente eingetreten ist, d.h. die Maus bei gedrückter Maustaste bewegt wurde, während sich der Mauszeiger auf dem Icon der Komponente befindet. |
void |
mouseEntered(MouseInfo e)
Wird aufgerufen, wenn ein mouseEntered-Event auf der Komponente eingetreten ist, d.h. der Mauszeiger auf das Icon der Komponente gezogen wird. |
void |
mouseExited(MouseInfo e)
Wird aufgerufen, wenn ein mouseExited-Event auf der Komponente eingetreten ist, d.h. der Mauszeiger das Icon der Komponente verlässt. |
void |
mouseMoved(MouseInfo e)
Wird aufgerufen, wenn ein mouseMoved-Event auf der Komponente eingetreten ist, d.h. die Maus bewegt wurde, während sich der Mauszeiger auf dem Icon der Komponente befindet. |
void |
mousePressed(MouseInfo e)
Wird aufgerufen, wenn ein mousePressed-Event auf der Komponente eingetreten ist, d.h. eine Maustaste gedrückt wird, während sich der Mauszeiger oberhalb des Icons der Komponente 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 über dem Icon der Komponente befindet. |
void |
run()
Muss überschrieben werden und die Akteur-spezifischen Aktionen enthalten |
void |
setHandlingKeyEvents(boolean handlingKeyEvents)
Legt fest, ob die Komponente Tastatur-Ereignisse behandeln soll. |
void |
setHandlingMouseEvents(boolean handlingMouseEvents)
Legt fest, ob die Komponente Maus-Ereignisse behandeln soll. |
void |
setImage(String filename)
Ordnet der Komponente ein Icon zu, durch das sie auf der Bühne repräsentiert wird. |
void |
setImage(TheaterImage image)
Ordnet der Komponente ein TheaterImage als Icon zu, durch das sie auf der Bühne repräsentiert wird. |
void |
setLocation(int newCol,
int newRow)
Mit Hilfe der add-Methode der Klasse Stage können Komponente in einer bestimmten Spalte und Reihe auf einer Bühne platziert werden. |
void |
setRotation(int rotation)
Legt den Rotationswinkel fest, mit der das Icon der Komponente gezeichnet werden soll. |
void |
setVisible(boolean visible)
Über diese Methode können Komponenten sichtbar bzw. unsichtbar gemacht werden. |
void |
setZCoordinate(int newZ)
Ändert die z-Koordinate der Komponente, mit der die Zeichenreihenfolge von Komponenten beeinflusst werden kann. |
Methods inherited from class java.lang.Thread |
---|
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int DEF_Z_COORDINATE
Constructor Detail |
---|
protected Component(boolean isActor)
isActor
- true, falss es sich um einen Akteur handelt; false, falls es
sich um eine Requisite handeltMethod Detail |
---|
public void addedToStage(Stage stage)
stage
- das Objekt, das die Bühne repräsentiert, auf die die
Komponente platziert wurdepublic boolean contains(int x, int y) throws IllegalStateException
contains
in interface PixelArea
x
- x-Koordinate des Punktesy
- y-Koordinate des Punktes
IllegalStateException
- wird geworfen, wenn die Komponente aktuell nicht auf einer
Bühne platziert istPixelArea.contains(int, int)
public Cell getCell() throws IllegalStateException
IllegalStateException
- wird geworfen, wenn die Komponente aktuell nicht auf einer
Bühne platziert istpublic int getColumn() throws IllegalStateException
IllegalStateException
- wird geworfen, wenn die Komponente aktuell nicht auf einer
Bühne platziert istpublic TheaterImage getImage()
public int getRotation()
public int getRow() throws IllegalStateException
IllegalStateException
- wird geworfen, wenn die Komponente aktuell nicht auf einer
Bühne platziert istpublic Stage getStage()
public int getZCoordinate()
public boolean intersects(PixelArea area) throws IllegalStateException
intersects
in interface PixelArea
area
- das Gebiet, das überprüft werden soll (darf nicht null sein)
IllegalStateException
- wird geworfen, wenn die Komponente aktuell nicht auf einer
Bühne platziert istPixelArea.intersects(theater.PixelArea)
public boolean isHandlingKeyEvents()
public boolean isHandlingMouseEvents()
public boolean isInside(PixelArea area) throws IllegalStateException
isInside
in interface PixelArea
area
- das Gebiet, das überprüft werden soll (darf nicht null sein)
IllegalStateException
- wird geworfen, wenn die Komponente aktuell nicht auf einer
Bühne platziert istPixelArea.isInside(theater.PixelArea)
public boolean isVisible()
public void keyPressed(KeyInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingKeyEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void keyReleased(KeyInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingKeyEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void keyTyped(KeyInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingKeyEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void mouseClicked(MouseInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void mouseDragged(MouseInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void mouseEntered(MouseInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void mouseExited(MouseInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void mouseMoved(MouseInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void mousePressed(MouseInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void mouseReleased(MouseInfo e)
Die Methode wird nur aufgerufen, wenn der HandlingMouseEvents-Status gesetzt ist (was standardmäßig der Fall ist).
Sowohl Komponenten als auch die Bühne 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.
e
- enthält Details zum eingetretenen Eventpublic void run()
run
in interface Runnable
run
in class Thread
public void setHandlingKeyEvents(boolean handlingKeyEvents)
handlingKeyEvents
- true, falls die Komponente Tastatur-Ereignisse behandeln soll;
false andernfalls.public void setHandlingMouseEvents(boolean handlingMouseEvents)
handlingMouseEvents
- true, falls die Komponente Maus-Ereignisse behandeln soll;
false andernfalls.public void setImage(String filename) throws IllegalArgumentException
filename
- Name der Bilddatei; die Datei muss sich im Unterverzeichnis
images des Theaterstück-Verzeichnisses befinden
IllegalArgumentException
- wird geworfen, wenn die angegebene Datei keine gültige
lesbare Bilddatei istpublic void setImage(TheaterImage image)
image
- das TheaterImage, das als Icon verwendet werden sollpublic void setLocation(int newCol, int newRow) throws IllegalStateException
newCol
- die Spalte, in die die Komponente umplatziert werden sollnewRow
- die Reihe, in die die Komponente umplatziert werden soll
IllegalStateException
- wird geworfen, wenn die Komponente aktuell nicht auf einer
Bühne platziert istpublic void setRotation(int rotation)
Achtung: Der Rotationswinkel hat keinen Einfluss auf die Weite und Höhe eines einer Komponente zugeordneten Icons. Diese werden immer auf der Grundlage eines Rotationswinkels von 0 berechnet.
rotation
- der neue Rotationswinkel der Komponentepublic void setVisible(boolean visible)
visible
- falls true, wird die Komponente sichtbar; falls false, wird
sie unsichtbarpublic void setZCoordinate(int newZ)
newZ
- die neue z-Koordinate der Komponente
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |