ui
Class HoverButton

java.lang.Object
  |
  +--java.awt.Component
        |
        +--ui.HoverButton
All Implemented Interfaces:
java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.event.MouseListener, java.io.Serializable

public class HoverButton
extends java.awt.Component
implements java.awt.event.MouseListener

En hemgjord knapp.

Version:
1.1
Author:
Sergej Gratchev, s_g@swipnet.se
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  int margin
          Avståndet från knapptexten till knappens rand Används när man inte anger några bilder för knappen (vanlig grå knapp med text).
 
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
protected HoverButton()
           
  HoverButton(java.awt.Image offImg, java.awt.Image onImg, java.awt.Image overImg, java.awt.Image disableImg)
          Skapa en knapp med hjälp av de angivna bilderna Om någon av bilderna inte kan laddas kommer en "klassisk" grå knapp att visas i stället.
  HoverButton(int w, int h, java.lang.String text)
          Skapa en standardknapp med grå bakgrund, angiven text och förbestämd storlek OBS!
  HoverButton(java.lang.String text)
          Skapa en standardknapp med grå bakgrund och angiven text Storleken blir anpassad till texten, men kan ändras av layouthanterare!
  HoverButton(java.lang.String text, java.awt.Color fgColor, java.awt.Color whiteColor, java.awt.Color darkColor, java.awt.Color darkestColor, java.awt.Color textColor)
          Skapa en standardknapp med valfri bakgrund och angiven text Storleken blir anpassad till texten, men kan ändras av layouthanterare!
 
Method Summary
 void addActionListener(java.awt.event.ActionListener listener)
          Här kan man lägga till ActionListeners för att ta reda på när knappen blir intryckt.
protected  java.awt.Image createDefaultButton(int btn, java.awt.Font f)
          Skapa en klassisk grå knapp, som tar upp hela fönsterytan Om fönsterytan inte definierad (dvs this.getSize returnerar konstiga värden) skapas en (förhoppningsvis) optimal knappstorlek
 java.lang.String getActionCommand()
          Returnerar namnet på kommandot, som returneras med en ActionEvent när man trycker på knappen.
 java.lang.String getLabel()
          Returnerar knappens text
 java.awt.Dimension getPreferredSize()
           
 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 paint(java.awt.Graphics g)
          Anropas för att rita upp knappen
 boolean removeActionListener(java.awt.event.ActionListener listener)
          "Avprenumererar" ActionListener, som tog emot knappens ActionEvents.
 boolean resetImg(java.awt.Image offImg, java.awt.Image onImg, java.awt.Image overImg, java.awt.Image disableImg)
          Byter ut alla bilder som visas i knappens olika lägen.
 void setActionCommand(java.lang.String command)
          Anger kommandot, som skall returneras med ActionEvent när man trycker på knappen.
 void setEnabled(boolean enabled)
          Aktivera/inaktivera knappen
 boolean setImg(int btn, java.awt.Image img)
          Ändra en viss bild, som visas i ett av knappens lägen
 void setLabel(java.lang.String label)
          Byter knapptexten
 void update(java.awt.Graphics g)
           
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

margin

protected int margin
Avståndet från knapptexten till knappens rand Används när man inte anger några bilder för knappen (vanlig grå knapp med text).

Constructor Detail

HoverButton

protected HoverButton()

HoverButton

public HoverButton(java.awt.Image offImg,
                   java.awt.Image onImg,
                   java.awt.Image overImg,
                   java.awt.Image disableImg)
Skapa en knapp med hjälp av de angivna bilderna Om någon av bilderna inte kan laddas kommer en "klassisk" grå knapp att visas i stället. OBS! Storleken anpassas till den största bilden, men kan ändras av layouthanterare!

Parameters:
offImg - Bilden som visas som standard
onImg - Bilden som ska visas när man klickar på knappen och håller in musknappen
overImg - Bilden som ska visas när muspekaren befinner sig över knappen
disableImg - Bilden som ska visas när knappen är inaktiverad

HoverButton

public HoverButton(java.lang.String text)
Skapa en standardknapp med grå bakgrund och angiven text Storleken blir anpassad till texten, men kan ändras av layouthanterare!

Parameters:
text - Texten som skall stå på knappen

HoverButton

public HoverButton(java.lang.String text,
                   java.awt.Color fgColor,
                   java.awt.Color whiteColor,
                   java.awt.Color darkColor,
                   java.awt.Color darkestColor,
                   java.awt.Color textColor)
Skapa en standardknapp med valfri bakgrund och angiven text Storleken blir anpassad till texten, men kan ändras av layouthanterare!

Parameters:
text - Texten som skall stå på knappen
whiteColor - Den ljusaste färgen (typ vit)
fgColor - FÖrgrundsfärg på knappen
darkColor - Knappens skuggfärg
darkestColor - Knappens andra skuggfärg
textColor - Textens färg

HoverButton

public HoverButton(int w,
                   int h,
                   java.lang.String text)
Skapa en standardknapp med grå bakgrund, angiven text och förbestämd storlek OBS! Bredd-/höjdinställningar kan åsidosättas av olika layouthanterare!

Parameters:
w - Knappens bredd i pixlar
h - Knappens höjd i pixlar
text - Texten som skall stå på knappen
Method Detail

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class java.awt.Component

createDefaultButton

protected java.awt.Image createDefaultButton(int btn,
                                             java.awt.Font f)
Skapa en klassisk grå knapp, som tar upp hela fönsterytan Om fönsterytan inte definierad (dvs this.getSize returnerar konstiga värden) skapas en (förhoppningsvis) optimal knappstorlek

Parameters:
btn - Vilket knappläge man ska skapa: 0 = off, 1 = on, 2 = over, 3=disabled
f - Textfont och storlek. Om f är null blir det Helvetica, 11 pkter.

update

public void update(java.awt.Graphics g)
Overrides:
update in class java.awt.Component

paint

public void paint(java.awt.Graphics g)
Anropas för att rita upp knappen

Overrides:
paint in class java.awt.Component

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

mouseClicked

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

setEnabled

public void setEnabled(boolean enabled)
Aktivera/inaktivera knappen

Overrides:
setEnabled in class java.awt.Component
Parameters:
enabled - true/false för aktivera/inaktivera

setImg

public boolean setImg(int btn,
                      java.awt.Image img)
Ändra en viss bild, som visas i ett av knappens lägen

Parameters:
btn - Knappläge: 0=offImg, 1=onImg, 2=overImg, 3=disableImg
img - Den nya bilden

resetImg

public boolean resetImg(java.awt.Image offImg,
                        java.awt.Image onImg,
                        java.awt.Image overImg,
                        java.awt.Image disableImg)
Byter ut alla bilder som visas i knappens olika lägen. Knappen blir också aktiverad. Knappens storlek anpassas efter bilderna men kan köras över av layouthanteraren. Om någon av bilderna har värdet null laddas inga bilder alls och false returneras. Om någon av bilderna inte går att rita upp (pga fel referens t ex) ritas en grå standardknapp i stället för den problematiska bilden.

Parameters:
offImg - Bilden som visas som standard
onImg - Bilden som ska visas när man klickar på knappen och håller in musknappen
overImg - Bilden som ska visas när muspekaren befinner sig över knappen
disableImg - Bilden som ska visas när knappen är inaktiverad

setLabel

public void setLabel(java.lang.String label)
Byter knapptexten


getLabel

public java.lang.String getLabel()
Returnerar knappens text

Returns:
Texten

addActionListener

public void addActionListener(java.awt.event.ActionListener listener)
Här kan man lägga till ActionListeners för att ta reda på när knappen blir intryckt.

Parameters:
listener - Den nya Actionlistener

removeActionListener

public boolean removeActionListener(java.awt.event.ActionListener listener)
"Avprenumererar" ActionListener, som tog emot knappens ActionEvents.

Parameters:
listener - Referens till den ActionListener, som ska bort.

getActionCommand

public java.lang.String getActionCommand()
Returnerar namnet på kommandot, som returneras med en ActionEvent när man trycker på knappen.


setActionCommand

public void setActionCommand(java.lang.String command)
Anger kommandot, som skall returneras med ActionEvent när man trycker på knappen. Som standard returneras knapptexten.

Parameters:
command - En sträng med kommandot
See Also:
getLabel()