stasichase.gui
Class Hintergrund

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--stasichase.gui.Hintergrund

public class Hintergrund
extends JPanel

Die Klasse, die den Hintergund grafisch darstellt. Je nach Aufruf des Kontruktors wird eine Hintergrundgrafik geladen oder ein dynamischer Hintergrund generiert.
Es wird eine Map generiert, die verschiedene Farbstufen per Zufall auf dem Bildschirm verteilt. Diese Map basiert auf einem zwei-dimensionalen Array int[][] bild. Es werden dann Flaechen unter die zukuenftigen Stationen plaziert und ein Gitter gezeichnet.
Auf dieser Karte werden mit Hilfe eines BufferedImages Haeuser und weitere Elemente plaziert.

Version:
$Id: Hintergrund.java,v 1.37 2000/07/06 20:57:44 rieck Exp $
Author:
Hakan Cakar, Konrad Rieck, Konrad Kretschmer
See Also:
Serialized Form

Inner classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent, JComponent.IntVector, JComponent.KeyboardBinding, JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Component
Component.AWTTreeLock
 
Field Summary
(package private)  int anzahl
           
(package private)  ImageIcon bild
           
(package private)  Spielplan spielplan
           
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, alignmentX, alignmentY, ANCESTOR_USING_BUFFER, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, flags, HAS_FOCUS, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, uiClassID, UNDEFINED_CONDITION, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, maxSize, ncomponents, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, assert, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, hasFocus, height, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, serialVersionUID, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowListenerK, x, y
 
Constructor Summary
Hintergrund(Spielplan sp, boolean t)
          Generiert den Hintergrund.
 
Method Summary
private  int[][] generiereBoden(int[][] bild, int start, int ende)
          Generiert Boden.
private  int[][] generiereGrass(int[][] bild, int start, int ende)
          Generiert Grass.
private  ColorModel generierePalette(int[] farbstufen)
          Generiert eine Farbpalette.
 Image genesis(int breite, int hoehe)
          Genesis.
 int getHeight()
          Gibt die Hoehe des Hintergundbildes zurueck.
 int getWidth()
          Gibt die Breite des Hintergundbildes zurueck.
private  int[][] stempel(int[][] bild, int x, int y, int breite, int start, int ende)
          stempelt.
private  void zeichneGitter(Graphics g, int breite, int hoehe, int raster)
          Zeichne Gitter.
private  void zeichneHaeuser(Graphics g, int radius)
           
private  int[][] zeichneStrasse(int[][] bild, int x, int y, int x1, int y1, int farbeVon, int farbeZu, int schattenVon, int schattenZu)
          Zeichnet eine Strasse.
private  int[][] zeichneStrassen(int[][] bild, int[] farbstufen)
          Zeichnet das Strassennetz auf das SpielplanNetz.
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI, writeObject
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, bindingForKeyStroke, checkIfChildObscuredBySibling, computeVisibleRect, computeVisibleRect, contains, createToolTip, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getFlag, getGraphics, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVisibleRect, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, keyboardBindings, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, print, printAll, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyOrientation, countComponents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getCursorTarget, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPrint, list, list, locate, minimumSize, nextFocus, paintComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, printOneComponent, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setCursor, setFocusOwner, setLayout, transferFocus, updateCursor, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, coalesceEvents, constructComponentName, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getInputContext, getInputMethodRequests, getIntrinsicCursor, getLocale, getLocation, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, hide, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

bild

ImageIcon bild

spielplan

Spielplan spielplan

anzahl

int anzahl
Constructor Detail

Hintergrund

public Hintergrund(Spielplan sp,
                   boolean t)
Generiert den Hintergrund. Viel gibts hier nicht zu sagen.
Parameters:
sp - Spielplan
type - Dynamisch oda nisch.
Method Detail

getWidth

public int getWidth()
Gibt die Breite des Hintergundbildes zurueck.
Overrides:
getWidth in class JComponent
Returns:
int Breite des Bildes

getHeight

public int getHeight()
Gibt die Hoehe des Hintergundbildes zurueck.
Overrides:
getHeight in class JComponent
Returns:
int Hoehe des Bildes

genesis

public Image genesis(int breite,
                     int hoehe)
Genesis. Was fuer eine haarige Methode, diese Variante ist bestimmt schon die 4. voellig Neue. Ich hoffe Gott wird mir die Genesis nicht uebelnehmen, schliesslich ist sie nicht mal halb so gut wie seine.
Parameters:
breite - Breite der Welt
hoehe - Hoehe der Welt
Returns:
Image ein Bild der Welt

zeichneStrassen

private int[][] zeichneStrassen(int[][] bild,
                                int[] farbstufen)
Zeichnet das Strassennetz auf das SpielplanNetz. Es werden die StasiChase eigenen Grafiktools verwendet.
Parameters:
bild - das Bild
farbstufen - die zuverwendenden Farbstufen
See Also:
Tools

zeichneStrasse

private int[][] zeichneStrasse(int[][] bild,
                               int x,
                               int y,
                               int x1,
                               int y1,
                               int farbeVon,
                               int farbeZu,
                               int schattenVon,
                               int schattenZu)
Zeichnet eine Strasse. Die Strasse wird aus der Farbpalette farbeVon bis farbeZu generiert und dann mit einem Schatten versehen. Es werden die StasiChase eigenen Grafiktools verwendet.
Parameters:
bild - das Bild
x - X-Koordinate
y - Y-Koordinate
x1 - X1-Koordinate
y1 - Y1-Koordinate
farbeVon - Startwert der Strassenfarbe
farbeZu - Endwert der Strassenfarbe
schattenVon - Startwert der Schattenfarbe
schattenZu - Endwert der Schattenfarbe
See Also:
Tools

zeichneGitter

private void zeichneGitter(Graphics g,
                           int breite,
                           int hoehe,
                           int raster)
Zeichne Gitter. Ein zwei-dimensionales Gitter wird ueber den Hintergrund gelegt. Es taeuscht eine drei-dimensionale Perspektive vor.
Parameters:
g - Graphics
breite - Breite
hoehe - Hoehe
raster - Raster

zeichneHaeuser

private void zeichneHaeuser(Graphics g,
                            int radius)

generiereBoden

private int[][] generiereBoden(int[][] bild,
                               int start,
                               int ende)
Generiert Boden. Der Boden wird durch ein "Rauschen" zwischen start und ende erzeugt. Es werden die StasiChase eigenen Grafiktools verwendet.
Parameters:
start - Start der Farbpalette
ende - Ende der Farbpalette
bild - das Bild als 2-dim Array
Returns:
das neue Bild
See Also:
Tools

generiereGrass

private int[][] generiereGrass(int[][] bild,
                               int start,
                               int ende)
Generiert Grass. Das Grass wird durch ein "Rauschen" zwischen start und ende erzeugt. Die Grassstellen werden vorher partiell per Zufall ausgewaehlt. Es werden die StasiChase eigenen Grafiktools verwendet.
Parameters:
start - Start der Farbpalette
ende - Ende der Farbpalette
bild - das Bild als 2-dim Array
Returns:
das neue Bild
See Also:
Tools

stempel

private int[][] stempel(int[][] bild,
                        int x,
                        int y,
                        int breite,
                        int start,
                        int ende)
stempelt. Die Methode stempelt random Pixel auf ein Bild. Erinnert ein wenig and die Spruehdosenfunktion in vielen Malprogrammen. Es werden die StasiChase eigenen Grafiktools verwendet.
Parameters:
bild - das Bild
x - X-Koordinate
y - Y-Koordinate
breite - Breite des Stempels
start - Start der Farbpalette
ende - Ende der Farbpalette
Returns:
das Bild
See Also:
Tools

generierePalette

private ColorModel generierePalette(int[] farbstufen)
Generiert eine Farbpalette. Es werden verschiedene Schichten generiert, Boden/Erde, Grass, Steine und Taxi, Bus, ...
Parameters:
farbstufen - Anzahl der Farben fuer Boden, Grass, Steine...
Returns:
eine Farbpalette aus Rot, Gruen und Blau.