main
Class Flock

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--main.Flock
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Runnable, Serializable

public class Flock
extends JPanel
implements Runnable, Serializable

Titre : The Wondrous Farm
Description : Le monde dans lequel évoluent les Boids
Copyright : Copyright (c) 2002
Société : Maitrise d'Info

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.ActionStandin, JComponent.IntVector, JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.AWTTreeLock
 
Field Summary
private  int height
           
 double minDist
           
private  int nbBoids
           
private  int nbMaxPets
           
private  int nbObstacles
           
private  int nbReset
           
private  boolean pause
           
private  boolean startSim
           
private  int width
           
private  ListIterator wLI
           
private  ArrayList world
           
private  Thread worldThread
           
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
Flock(int w, int h)
          Crée un nouveau Flock/Monde pour la simulation.
 
Method Summary
 void add(Entity e)
          Rajoute une entité dans le Flock.
 boolean contains(Entity e)
          Teste l'appartenance de l'entité au Flock
 void empty()
          Réinitialise le Flock, on retire toutes les entités du monde.
 Entity getEntity(int i)
          Récupère la i_ème entité dans le Flock.
 String getFlockStats()
          Renvoie une description de l'état courrant du Flock.
 int getHeight()
           
 ArrayList getPopulation()
          Renvoie toutes les entités présentes dans le monde
 int getWidth()
           
 void paintComponent(Graphics g)
          Affiche tous les élements du Flock
 void pause()
          (dé)Mettre en pause la simulation
Tout est bloqué, on ne peut rien modifier dans la simulation
 int population()
           
 void remove(Entity e)
          Retire une entité du monde.
 void run()
          La méthode qui dirige le monde.
Elle active ou désactive toutes les entités du Flock.
 void startSim()
          Démarrer ou stopper la simulation courrante
On peut rajouter/supprimer ou changer l'état des entités du Flock.
 String toString()
          Description Sommaire du Flock
 
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, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paintWithBuffer, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

world

private ArrayList world

nbMaxPets

private int nbMaxPets

width

private int width

height

private int height

minDist

public double minDist

worldThread

private Thread worldThread

wLI

private ListIterator wLI

nbBoids

private int nbBoids

nbObstacles

private int nbObstacles

nbReset

private int nbReset

pause

private boolean pause

startSim

private boolean startSim
Constructor Detail

Flock

public Flock(int w,
             int h)
Crée un nouveau Flock/Monde pour la simulation.
Parameters:
w: - largeur du monde
h: - hauteur du monde
Method Detail

population

public int population()
Returns:
int: le nombre d'entité (Obstacle et Boids) présent dans ce Flock

getPopulation

public ArrayList getPopulation()
Renvoie toutes les entités présentes dans le monde
Returns:
ArrayList: la liste des entités du monde.

getWidth

public int getWidth()
Overrides:
getWidth in class JComponent
Returns:
int: la largeur du Flock

getHeight

public int getHeight()
Overrides:
getHeight in class JComponent
Returns:
int: la hauteur du Flock

remove

public void remove(Entity e)
Retire une entité du monde.
Parameters:
e: - le Boid ou l'Obstacle à éliminer.

add

public void add(Entity e)
Rajoute une entité dans le Flock.
Parameters:
e: - le Boid ou l'Obstacle à ajouter.

getEntity

public Entity getEntity(int i)
Récupère la i_ème entité dans le Flock.
Parameters:
i: - l'indice compris entre 0 et this.population() - 1
Returns:
Entity: le Boid ou l'Obstacle correspondant.

contains

public boolean contains(Entity e)
Teste l'appartenance de l'entité au Flock
Parameters:
e: - l'entité à tester
Returns:
boolean: true si appartenance confirmée, false sinon

empty

public void empty()
Réinitialise le Flock, on retire toutes les entités du monde.

run

public void run()
La méthode qui dirige le monde.
Elle active ou désactive toutes les entités du Flock.
Specified by:
run in interface Runnable

paintComponent

public void paintComponent(Graphics g)
Affiche tous les élements du Flock
Overrides:
paintComponent in class JComponent
Parameters:
g: - le "contexte graphique" où l'on dessine.

getFlockStats

public String getFlockStats()
Renvoie une description de l'état courrant du Flock.
Returns:
String: la chaine qui décrit cet état.

pause

public void pause()
(dé)Mettre en pause la simulation
Tout est bloqué, on ne peut rien modifier dans la simulation

startSim

public void startSim()
Démarrer ou stopper la simulation courrante
On peut rajouter/supprimer ou changer l'état des entités du Flock.

toString

public String toString()
Description Sommaire du Flock
Overrides:
toString in class Component
Returns:
String: la description