Class Emo

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byEmo
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Serializable

public class Emo
extends JPanel

Emo.java on sokerina pohjalla Emopaneelin tehtävä on varsinainen ohjelman toiminnan ydin, eli se koordinoi muiden luokkien toimintaa ja toimii itse, jotta käyttäjän hoivaaminen olisi tosiaan mahdollisimman mutkatonta.

Version:
1.1
Author:
Johannes Koponen
See Also:
Serialized Form

Nested Class Summary
 class Emo.Tehtava
          Tehtava -luokka kutsuu aika ajoin yritaAloittaaKeskustelu() -metodia.
 
Nested classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
Emo(String profiilinNimi, int kyllaisyysint, int vasymysint, int huviint, int yksinaisyysint, int siivoaminenint, int onnellisuusint, int sivistysint, int kuntoint, int kaupassakayntiint, int olo)
          Luo Emon ilmentymän.
 
Method Summary
 JEditorPane annaEditorPane()
          annaEditorPane palauttaa tekstikentän.
 JButton annaEinappi()
          annaEinappi palauttaa sen käyttöliittymän napin, jossa lukee "ei"
 Tarve annaHuvi()
          annaHuvi palauttaa huvin
 Tarve annaKaupassakaynti()
          annaKaupassakaynti palauttaa tarpeen "kaupassakaynti".
 Tarve annaKunto()
          annaKunto palauttaa tarpeen "kunto".
 JPanel annaKuvapaneeli()
          annaKuvapaneeli palauttaa kuvapaneelin.
 Tarve annaKyllaisyys()
          annaKyllaisyys palauttaa kyllaisyyden
 JButton annaKyllanappi()
          annaKyllanappi palauttaa sen käyttöliittymän napin, jossa lukee "kyllä"
 JPanel annaKysypaneeli()
          annaKysypaneeli palauttaa kysypaneelin
 int annaNopeus()
          annaNopeus ompi julkinen nopeuden toteutus
 Tarve annaOnnellisuus()
          annaOnnellisuus palauttaa tarpeen "onnellisuus".
 JPanel annaPohjapaneeli()
          Palauttaa pohjapaneelin.
 Tarve annaSiivoaminen()
          annaSiivoaminen palauttaa tarpeen "siivoaminen".
 Tarve annaSivistys()
          annaSivistys palauttaa tarpeen "sivistys".
 HashSet annaTarpeetSet()
          annaTarpeetSet antaa HashSetin tarpeetSet;
 JPanel annaTietopaneeli()
          annaTietopaneeli palauttaa tietopaneelin
 JPanel annaVastaapaneeli()
          annaVastaapaneeli palauttaa vastaapaneelin
 Tarve annaVasymys()
          annaVasymys palauttaa vasymyksen
 Tarve annaYksinaisyys()
          annaYksinaisyys palauttaa tarpeen "yksinaisyys".
 void asetaKuvapaneeli(JPanel uusiKuvapaneeli)
          Asettaa kuvapaneelin.
 void asetaKysypaneeli(JPanel uusiKysypaneeli)
          Asettaa kysypaneelin.
 void asetaPohjapaneeli(JPanel uusiPohjapaneeli)
          Asettaa pohjapaneelin.
 void asetaTietopaneeli(JPanel uusiTietopaneeli)
          Asettaa tietopaneelin.
 void asetaVastaapaneeli(JPanel uusiVastaapaneeli)
          Asettaa vastaapaneelin.
 void emonKyselynAktiivisuus(int tiheys)
          emonKyselynAktiivisuus käynnistää Tehtävä-säikeen tiheys tulee vetopalkista, jolla vaihdetaan emon aktiivisuutta
 String haeKuva()
          haeKuva kysyy mielialaluokalta sopivaa kuvaa
protected static ImageIcon luoImageIcon(String polku)
          luoImageIcon piirtää kuvan.
 void palkkipaivittaja()
          palkkipaiavittaja() päivittää tarvepalkkeja
 void tallennaTiedosto(String tiedostonNimi)
          tallennaTiedosto luo käyttäjälle profiloidun tiedoston, jonka käyttäjä voi halutessaan ensi kerralla ohjelmaa käyttäessään avata samalla nimellä ja tunnuksella.
 void unitilanVaihto()
          unitilanVaihto vaihtaa pelin tilaa: unitila on ikään kuin "pause"-nappi.
 void yritaAloittaaKeskustelu()
          yritaAloittaaKeskustelu luo uuden keskustelun, jos sellaista ei aiemmin ollut, ja kutsuu keskustelu -luokan etsiKysymys() metodia tietyin väliajoin.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Emo

public Emo(String profiilinNimi,
           int kyllaisyysint,
           int vasymysint,
           int huviint,
           int yksinaisyysint,
           int siivoaminenint,
           int onnellisuusint,
           int sivistysint,
           int kuntoint,
           int kaupassakayntiint,
           int olo)
Luo Emon ilmentymän.

Parameters:
profiilinNimi - String käyttäjän antamasta profiilin nimestä.
kyllaisyysint - int
vasymysint - int
huviint - int
yksinaisyysint - int>
siivoaminenint - int>
onnellisuusint - int>
sivistysint - int>
kuntoint - int>
kaupassakayntiint - int>
olo - int
Method Detail

annaPohjapaneeli

public JPanel annaPohjapaneeli()
Palauttaa pohjapaneelin.

Returns:
pohjapaneeli

asetaPohjapaneeli

public void asetaPohjapaneeli(JPanel uusiPohjapaneeli)
Asettaa pohjapaneelin.

Parameters:
uusiPohjapaneeli - Paneeli, johon käyttöliittymän elementit lisätään.

annaKuvapaneeli

public JPanel annaKuvapaneeli()
annaKuvapaneeli palauttaa kuvapaneelin.

Returns:
JPanel value

annaTietopaneeli

public JPanel annaTietopaneeli()
annaTietopaneeli palauttaa tietopaneelin

Returns:
JPanel

annaKysypaneeli

public JPanel annaKysypaneeli()
annaKysypaneeli palauttaa kysypaneelin

Returns:
JPanel

annaVastaapaneeli

public JPanel annaVastaapaneeli()
annaVastaapaneeli palauttaa vastaapaneelin

Returns:
JPanel

annaEditorPane

public JEditorPane annaEditorPane()
annaEditorPane palauttaa tekstikentän.

Returns:
JEditorPane

asetaKuvapaneeli

public void asetaKuvapaneeli(JPanel uusiKuvapaneeli)
Asettaa kuvapaneelin.

Parameters:
uusiKuvapaneeli - JPanel

asetaKysypaneeli

public void asetaKysypaneeli(JPanel uusiKysypaneeli)
Asettaa kysypaneelin.

Parameters:
uusiKysypaneeli - JPanel

asetaVastaapaneeli

public void asetaVastaapaneeli(JPanel uusiVastaapaneeli)
Asettaa vastaapaneelin.

Parameters:
uusiVastaapaneeli - JPanel

asetaTietopaneeli

public void asetaTietopaneeli(JPanel uusiTietopaneeli)
Asettaa tietopaneelin.

Parameters:
uusiTietopaneeli - JPanel

annaNopeus

public int annaNopeus()
annaNopeus ompi julkinen nopeuden toteutus

Returns:
int

annaTarpeetSet

public HashSet annaTarpeetSet()
annaTarpeetSet antaa HashSetin tarpeetSet;

Returns:
HashSet

annaKyllaisyys

public Tarve annaKyllaisyys()
annaKyllaisyys palauttaa kyllaisyyden

Returns:
Tarve

annaVasymys

public Tarve annaVasymys()
annaVasymys palauttaa vasymyksen

Returns:
Tarve

annaHuvi

public Tarve annaHuvi()
annaHuvi palauttaa huvin

Returns:
Tarve

annaYksinaisyys

public Tarve annaYksinaisyys()
annaYksinaisyys palauttaa tarpeen "yksinaisyys".

Returns:
Tarve

annaSiivoaminen

public Tarve annaSiivoaminen()
annaSiivoaminen palauttaa tarpeen "siivoaminen".

Returns:
Tarve

annaOnnellisuus

public Tarve annaOnnellisuus()
annaOnnellisuus palauttaa tarpeen "onnellisuus".

Returns:
Tarve

annaSivistys

public Tarve annaSivistys()
annaSivistys palauttaa tarpeen "sivistys".

Returns:
Tarve

annaKunto

public Tarve annaKunto()
annaKunto palauttaa tarpeen "kunto".

Returns:
Tarve

annaKaupassakaynti

public Tarve annaKaupassakaynti()
annaKaupassakaynti palauttaa tarpeen "kaupassakaynti".

Returns:
Tarve

palkkipaivittaja

public void palkkipaivittaja()
palkkipaiavittaja() päivittää tarvepalkkeja


yritaAloittaaKeskustelu

public void yritaAloittaaKeskustelu()
yritaAloittaaKeskustelu luo uuden keskustelun, jos sellaista ei aiemmin ollut, ja kutsuu keskustelu -luokan etsiKysymys() metodia tietyin väliajoin.


emonKyselynAktiivisuus

public void emonKyselynAktiivisuus(int tiheys)
emonKyselynAktiivisuus käynnistää Tehtävä-säikeen tiheys tulee vetopalkista, jolla vaihdetaan emon aktiivisuutta

Parameters:
tiheys - int>

luoImageIcon

protected static ImageIcon luoImageIcon(String polku)
luoImageIcon piirtää kuvan.

Parameters:
polku - String on paikka mistä kuva löytyy
Returns:
ImageIcon

haeKuva

public String haeKuva()
haeKuva kysyy mielialaluokalta sopivaa kuvaa

Returns:
String, joka on oikeastaan kuvan sijainti (kuvat -nimisessä hakemistossa).

tallennaTiedosto

public void tallennaTiedosto(String tiedostonNimi)
                      throws IOException
tallennaTiedosto luo käyttäjälle profiloidun tiedoston, jonka käyttäjä voi halutessaan ensi kerralla ohjelmaa käyttäessään avata samalla nimellä ja tunnuksella.

Parameters:
tiedostonNimi - String on tässä tapauksessa aina profiilin nimi ja profiilin tunnus.
Throws:
IOException - jos tiedostontallennuksessa esiintyy ongelmia.

unitilanVaihto

public void unitilanVaihto()
unitilanVaihto vaihtaa pelin tilaa: unitila on ikään kuin "pause"-nappi. tila palautetaan vastaavaksi kun nappia painetaan toistamiseen.


annaKyllanappi

public JButton annaKyllanappi()
annaKyllanappi palauttaa sen käyttöliittymän napin, jossa lukee "kyllä"

Returns:
JButton

annaEinappi

public JButton annaEinappi()
annaEinappi palauttaa sen käyttöliittymän napin, jossa lukee "ei"

Returns:
JButton