Package pigeons

Class Park

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
pigeons.Park
All Implemented Interfaces:
java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class Park
extends javax.swing.JPanel
implements java.awt.event.MouseListener
Classe permettant de gérer un parc d'oiseaux Ce parc permet de gerer un parc contenant des oiseaux, vous pouvez nourrir ces oiseaux en cliquant sur votre interface, vos oiseaux seront effrayer de manière aléatoire. Ce park peut etre affiché à l'aide d'une JFrame.
Since:
1.0
See Also:
Serialized Form
  • Nested Class Summary

    Nested classes/interfaces inherited from class javax.swing.JPanel

    javax.swing.JPanel.AccessibleJPanel

    Nested classes/interfaces inherited from class javax.swing.JComponent

    javax.swing.JComponent.AccessibleJComponent

    Nested classes/interfaces inherited from class java.awt.Container

    java.awt.Container.AccessibleAWTContainer

    Nested classes/interfaces inherited from class java.awt.Component

    java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
  • Field Summary

    Fields
    Modifier and Type Field Description
    private java.util.ArrayList<Bird> birds
    Oiseaux présent dans le parc
    private java.util.ArrayList<Food> foods
    Nourritures présente dans le parc
    private int frightenProbaility
    Probabilité d'effrayer les oiseaux, decroit à chaque actualisation du parc
    private java.util.concurrent.atomic.AtomicInteger numWriter
    Nombre de thread travaillant en ecriture sur l'objet

    Fields inherited from class javax.swing.JComponent

    listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW

    Fields inherited from class java.awt.Component

    accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

    Fields inherited from interface java.awt.image.ImageObserver

    ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
  • Constructor Summary

    Constructors
    Constructor Description
    Park​(int width, int height)
    Constructeur de l'objet representant un parc
  • Method Summary

    Modifier and Type Method Description
    void addBird​(Bird toAdd)
    Ajouter un oiseau dans le parc
    void addFood​(Food toAdd)
    Ajouter une nourriture dans le parc Cette méthode est executé avec un verrou ce qui permet de modifier la propriété, tout en bloquant les lectures eventuelles de la propriété.
    java.util.ArrayList<Bird> getBirds()
    Obtenir les oiseaux du parc
    java.util.ArrayList<Food> getFoods()
    Obtenir la nourriture du parc Cette méthode est executé avec un verrou ce qui permet aux oiseaux de recuperer la propriété en étant sur que la variable n'est pas en cours de modification
    void mouseClicked​(java.awt.event.MouseEvent e)  
    void mouseEntered​(java.awt.event.MouseEvent e)  
    void mouseExited​(java.awt.event.MouseEvent e)  
    void mousePressed​(java.awt.event.MouseEvent e)  
    void mouseReleased​(java.awt.event.MouseEvent e)  
    void paintComponent​(java.awt.Graphics g)  
    private void refreshPark()
    Rafraichir le parc, supprime les nourriture périmés depuis un certain temps, réduit le temps de fraicheurs des nourritures et essaye d'effrayer les oiseaux du park
    void removeBird​(int index)  
    void removeFood​(Food food)
    Supprimer une nourriture du parc Cette méthode est executé avec un verrou ce qui permet de modifier la propriété, tout en bloquant les lectures eventuelles de la propriété.
    void removeFoods​(java.util.ArrayList<Food> foods)
    Supprimer des nourriture présente sur le parc Cette méthode est executé avec un verrou ce qui permet de modifier la propriété, tout en bloquant les lectures eventuelles de la propriété.

    Methods inherited from class javax.swing.JPanel

    getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI

    Methods inherited from class javax.swing.JComponent

    addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update

    Methods inherited from class java.awt.Container

    add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree

    Methods inherited from class java.awt.Component

    action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • birds

      private java.util.ArrayList<Bird> birds
      Oiseaux présent dans le parc
    • foods

      private java.util.ArrayList<Food> foods
      Nourritures présente dans le parc
    • frightenProbaility

      private int frightenProbaility
      Probabilité d'effrayer les oiseaux, decroit à chaque actualisation du parc
    • numWriter

      private java.util.concurrent.atomic.AtomicInteger numWriter
      Nombre de thread travaillant en ecriture sur l'objet
  • Constructor Details

    • Park

      public Park​(int width, int height)
      Constructeur de l'objet representant un parc
      Parameters:
      width - longueur du parc
      height - hauteur du parc
  • Method Details

    • getBirds

      public java.util.ArrayList<Bird> getBirds()
      Obtenir les oiseaux du parc
      Returns:
      la liste contenant les oiseaux du parcs
    • getFoods

      public java.util.ArrayList<Food> getFoods()
      Obtenir la nourriture du parc Cette méthode est executé avec un verrou ce qui permet aux oiseaux de recuperer la propriété en étant sur que la variable n'est pas en cours de modification
      Returns:
      la liste contenant les nourritures du parc
    • addFood

      public void addFood​(Food toAdd)
      Ajouter une nourriture dans le parc Cette méthode est executé avec un verrou ce qui permet de modifier la propriété, tout en bloquant les lectures eventuelles de la propriété. L'ecriture est prioritaire sur la lecture.
      Parameters:
      toAdd - nourriture a ajouter au parc
    • addBird

      public void addBird​(Bird toAdd)
      Ajouter un oiseau dans le parc
      Parameters:
      toAdd - Oiseau à ajouter au parc
    • removeFoods

      public void removeFoods​(java.util.ArrayList<Food> foods)
      Supprimer des nourriture présente sur le parc Cette méthode est executé avec un verrou ce qui permet de modifier la propriété, tout en bloquant les lectures eventuelles de la propriété. L'ecriture est prioritaire sur la lecture.
      Parameters:
      foods - liste de nourriture à supprimer du parc
    • removeFood

      public void removeFood​(Food food)
      Supprimer une nourriture du parc Cette méthode est executé avec un verrou ce qui permet de modifier la propriété, tout en bloquant les lectures eventuelles de la propriété. L'ecriture est prioritaire sur la lecture.
      Parameters:
      food - nourriture à ajouter
    • paintComponent

      public void paintComponent​(java.awt.Graphics g)
      Overrides:
      paintComponent in class javax.swing.JComponent
    • mouseClicked

      public void mouseClicked​(java.awt.event.MouseEvent e)
      Specified by:
      mouseClicked in interface java.awt.event.MouseListener
    • mousePressed

      public void mousePressed​(java.awt.event.MouseEvent e)
      Specified by:
      mousePressed in interface java.awt.event.MouseListener
    • mouseReleased

      public void mouseReleased​(java.awt.event.MouseEvent e)
      Specified by:
      mouseReleased in interface java.awt.event.MouseListener
    • mouseEntered

      public void mouseEntered​(java.awt.event.MouseEvent e)
      Specified by:
      mouseEntered in interface java.awt.event.MouseListener
    • mouseExited

      public void mouseExited​(java.awt.event.MouseEvent e)
      Specified by:
      mouseExited in interface java.awt.event.MouseListener
    • removeBird

      public void removeBird​(int index)
      Parameters:
      index - index de liste de l'oiseau à supprimer
    • refreshPark

      private void refreshPark()
      Rafraichir le parc, supprime les nourriture périmés depuis un certain temps, réduit le temps de fraicheurs des nourritures et essaye d'effrayer les oiseaux du park