Files
TestBAY/Text.java

194 lines
4.7 KiB
Java

/**
* Wrapperklasse für einen Text auf der Zeichenfläche.
*
* @author Albert Wiedemann
* @version 1.0
*/
public class Text
{
/** x-Position der linken Seite der Grundlinie. */
private int x;
/** y-Position der Grundlinie. */
private int y;
/** Farbe des Textes. */
private String farbe;
/** Sichtbarkeit des Textes. */
private boolean sichtbar;
/** Drehwinkel (mathematisch positiver Drehsinn) des Textes in Grad. */
private int winkel;
/** Größe des Textes in Punkten. */
private int textgröße;
/** Referenz auf das Delegate-Objekt. */
private Zeichenfenster.TextIntern symbol;
/**
* Der Konstruktor erzeugt das Delegate-Objekt
*/
Text ()
{
x = 10;
y = 10;
farbe = "schwarz";
sichtbar = true;
winkel = 0;
textgröße = 12;
symbol = (Zeichenfenster.TextIntern) Zeichenfenster.SymbolErzeugen(Zeichenfenster.SymbolArt.text);
symbol.PositionSetzen(x, y);
symbol.FarbeSetzen(farbe);
symbol.SichtbarkeitSetzen(sichtbar);
symbol.WinkelSetzen(winkel);
symbol.TextGrößeSetzen(textgröße);
}
/**
* Setzt die Position (der Grundline) des Textes.
* @param x x-Position der linken Seite der Grundlinie
* @param y y-Position der Grundlinie
*/
void PositionSetzen(int x, int y)
{
this.x = x;
this.y = y;
symbol.PositionSetzen(x, y);
}
/**
* Setzt den aktuellen Text.
* @param text der neue Text
*/
void TextSetzen (String text)
{
symbol.TextSetzen(text);
}
/**
* Setzt die Größe des Textes.
* @param größe die (neue) Textgröße
*/
void TextGrößeSetzen (int größe)
{
textgröße = größe;
symbol.TextGrößeSetzen(größe);
}
/**
* Vergrößert den Text.
*/
void TextVergrößern()
{
symbol.TextVergrößern();
textgröße = (int) symbol.size;
}
/**
* Verkleinert den Text.
*/
void TextVerkleinern()
{
symbol.TextVerkleinern();
textgröße = (int) symbol.size;
}
/**
* Verschiebt den Text um die angegebenen Werte.
* @param deltaX Verschiebung in x-Richtung
* @param deltaY Verschiebung in y-Richtung
*/
void Verschieben(int deltaX, int deltaY)
{
x += deltaX;
y += deltaY;
symbol.PositionSetzen(x, y);
}
/**
* Dreht den Text
* @param grad Drehwinkel (mathematisch positiver Drehsinn) im Gradmass
*/
void Drehen(int grad)
{
winkel += grad;
symbol.WinkelSetzen(winkel);
}
/**
* Setzt die Farbe des Textes.
* Erlaubte Farben sind:
* "weiß", "weiss", "rot", "grün", "gruen", "blau", "gelb",
* "magenta", "cyan", "hellgelb", "hellgrün", "hellgruen",
* "orange", "braun", "grau", "schwarz"
* Alle anderen Eingaben werden auf die Farbe schwarz abgebildet.
* @param farbe (neue) Farbe
*/
void FarbeSetzen (String farbe)
{
this.farbe = farbe;
symbol.FarbeSetzen(farbe);
}
/**
* Setzt den Drehwinkel des Textes.
* Die Winkelangabe ist in Grad,positive Werte drehen gegen den Uhrzeigersinn,
* negative Werte drehen im Uhrzeigersinn (mathematisch positiver Drehsinn).
* @param winkel der (neue) Drehwinkel des Textes
*/
void WinkelSetzen (int winkel)
{
this.winkel = winkel;
symbol.WinkelSetzen(winkel);
}
/**
* Schaltet die Sichtbarkeit des Textes ein oder aus.
* Erlaubte Parameterwerte: true, false
* @param sichtbar (neue) Sichtbarkeit des Textes
*/
void SichtbarkeitSetzen (boolean sichtbar)
{
this.sichtbar = sichtbar;
symbol.SichtbarkeitSetzen(sichtbar);
}
/**
* Entfernt den Text aus dem Zeichenfenster.
*/
void Entfernen ()
{
symbol.Entfernen();
}
/**
* Bringt den Text eine Ebene nach vorn.
*/
void NachVornBringen ()
{
symbol.NachVornBringen();
}
/**
* Bringt den Text in die vorderste Ebene.
*/
void GanzNachVornBringen ()
{
symbol.GanzNachVornBringen();
}
/**
* Bringt den Text eine Ebene nach hinten.
*/
void NachHintenBringen ()
{
symbol.NachHintenBringen();
}
/**
* Bringt den Text in die hinterste Ebene.
*/
void GanzNachHintenBringen ()
{
symbol.GanzNachHintenBringen();
}
}