DESY ACOP Beans Home

com.cosylab.gui.components
Class ResizableTextLabel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JLabel
                  extended by com.cosylab.gui.components.ResizableTextLabel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants
Direct Known Subclasses:
GradientLabel

public class ResizableTextLabel
extends javax.swing.JLabel

A text area in which the text can dynamicaly adjust its font size to fill the whole area available. By default resizing is turn off.

Version:
$id$
Author:
Jernej Kamenik
See Also:
JLabel, Serialized Form

Nested Class Summary
protected  class ResizableTextLabel.ResizableAdapter
          Helper class that notifies the resizable text label to resize its font when itself is being resized.
 
Nested classes/interfaces inherited from class javax.swing.JLabel
javax.swing.JLabel.AccessibleJLabel
 
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 inherited from class javax.swing.JLabel
labelFor
 
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ResizableTextLabel()
          Creates an empty label.
ResizableTextLabel(javax.swing.Icon image)
          Creates a resizable text label with an icon
ResizableTextLabel(javax.swing.Icon image, int horizontalAlignment)
          Creates a resizable text label with icon and predefined horizontal text aligment and resizable font setting.
ResizableTextLabel(java.lang.String arg0)
          Creates a resizable text label with text.
ResizableTextLabel(java.lang.String text, javax.swing.Icon icon, int horizontalAlignment)
          Creates a resizable text label with text, icon and predefined horizontal text aligment and resizable font setting.
ResizableTextLabel(java.lang.String arg0, int arg1)
          Creates a resizable text label with text and predefined horizontal text aligment.
 
Method Summary
 void addNotify()
          This method was overriden to implement font resizing.
 void adjustSizeToFont(int fontSize, int newColumns)
          (This method may improve usage of columns field) This method sets font size and columns to make this label fit to display wanted amount of characters in preferred font size.
 int getColumns()
          Gets the number of character columns to be displayed.
 int getMaximumFontSize()
          Returns maximum font size text can reach.
 int getMinimumFontSize()
          Returns minimum font size text can reach.
 java.awt.Dimension getMinimumSize()
          This method was overriden to implement font resizing.
 java.awt.Dimension getPreferredSize()
          This method was overriden to implement font resizing.
 boolean isEnhanced()
          Returns the enhanced mode setting.
 boolean isResizable()
          Returns the resizable text font setting.
protected  void paintComponent(java.awt.Graphics g)
          This method hes been overriden to implement the feature of enhanced anti-aliasing paint of the label.
protected  void resize()
           
 void setColumns(int newColumns)
          Sets the number of character columns to be displayed.
 void setEnhanced(boolean newEnhanced)
          Sets the enhanced mode setting.
 void setMaximumFontSize(int newMax)
          Sets maximum font size text can reach.
 void setMinimumFontSize(int newMin)
          minimum font size text can reach
 void setMinimumSize(java.awt.Dimension newMinimumSize)
          This method was overriden to implement font resizing.
 void setPreferredSize(java.awt.Dimension newPreferredSize)
          This method was overriden to implement font resizing.
 void setResizable(boolean newResizable)
          Sets the resizable text font setting.
 void setText(java.lang.String text)
          This method was overriden to implement font resizing.
 
Methods inherited from class javax.swing.JLabel
checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setUI, setVerticalAlignment, setVerticalTextPosition, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, setNextFocusableComponent, setOpaque, 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, 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, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, 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

ResizableTextLabel

public ResizableTextLabel(java.lang.String text,
                          javax.swing.Icon icon,
                          int horizontalAlignment)
Creates a resizable text label with text, icon and predefined horizontal text aligment and resizable font setting.

Parameters:
text - java.lang.String text to be displayed in the label.
icon - Icon image to be displayed in the label.
horizontalAlignment - int horizontal aligment of the text in the label.

ResizableTextLabel

public ResizableTextLabel(java.lang.String arg0,
                          int arg1)
Creates a resizable text label with text and predefined horizontal text aligment.

Parameters:
arg0 - java.lang.String text to be displayed in the label.
arg1 - int horizontal aligment of the text in the label.

ResizableTextLabel

public ResizableTextLabel(java.lang.String arg0)
Creates a resizable text label with text.

Parameters:
arg0 - java.lang.String text to be displayed in the label.

ResizableTextLabel

public ResizableTextLabel(javax.swing.Icon image,
                          int horizontalAlignment)
Creates a resizable text label with icon and predefined horizontal text aligment and resizable font setting.

Parameters:
image - Icon image to be displayed in the label.
horizontalAlignment - int horizontal aligment of the text in the label.

ResizableTextLabel

public ResizableTextLabel(javax.swing.Icon image)
Creates a resizable text label with an icon

Parameters:
image - Icon image to be displayed in the label.

ResizableTextLabel

public ResizableTextLabel()
Creates an empty label.

Method Detail

setColumns

public void setColumns(int newColumns)
Sets the number of character columns to be displayed. This setting only has effect if resizable text font setting is enabled. Then the size of the font is adjusted to display the specified number of character columns.

Parameters:
newColumns -

getColumns

public int getColumns()
Gets the number of character columns to be displayed.

Returns:
int

isResizable

public boolean isResizable()
Returns the resizable text font setting.

Returns:
boolean

setResizable

public void setResizable(boolean newResizable)
Sets the resizable text font setting.

Parameters:
newResizable -

setEnhanced

public void setEnhanced(boolean newEnhanced)
Sets the enhanced mode setting. When true, the label is painted with anti-aliasing rendering hints.

Parameters:
newEnhanced -

isEnhanced

public boolean isEnhanced()
Returns the enhanced mode setting.

Returns:
boolean

setText

public void setText(java.lang.String text)
This method was overriden to implement font resizing.

Overrides:
setText in class javax.swing.JLabel
Parameters:
text - to be displayed.
See Also:
JLabel.setText(String)

adjustSizeToFont

public void adjustSizeToFont(int fontSize,
                             int newColumns)
(This method may improve usage of columns field) This method sets font size and columns to make this label fit to display wanted amount of characters in preferred font size. If string represented by text field is longer than expected, label still displays it, just fontsize is changed (only if resizable); !!Event listeners should listen to component resized event to avoid some problems with fitting this label in the parent container.!!

Parameters:
fontSize - preferred font size
newColumns - columns of text to display

resize

protected void resize()

addNotify

public void addNotify()
This method was overriden to implement font resizing.

Overrides:
addNotify in class javax.swing.JComponent
See Also:
JComponent.addNotify()

getPreferredSize

public java.awt.Dimension getPreferredSize()
This method was overriden to implement font resizing.

Overrides:
getPreferredSize in class javax.swing.JComponent
Returns:
Dimension preferred size of the label
See Also:
JComponent.getPreferredSize()

setPreferredSize

public void setPreferredSize(java.awt.Dimension newPreferredSize)
This method was overriden to implement font resizing.

Overrides:
setPreferredSize in class javax.swing.JComponent
See Also:
JComponent.setPreferredSize(Dimension)

getMinimumSize

public java.awt.Dimension getMinimumSize()
This method was overriden to implement font resizing.

Overrides:
getMinimumSize in class javax.swing.JComponent
See Also:
Component.getMinimumSize()

setMinimumSize

public void setMinimumSize(java.awt.Dimension newMinimumSize)
This method was overriden to implement font resizing.

Overrides:
setMinimumSize in class javax.swing.JComponent
See Also:
JComponent.setMinimumSize(Dimension)

paintComponent

protected void paintComponent(java.awt.Graphics g)
This method hes been overriden to implement the feature of enhanced anti-aliasing paint of the label.

Overrides:
paintComponent in class javax.swing.JComponent
See Also:
JComponent.paintComponent(Graphics)

getMaximumFontSize

public int getMaximumFontSize()
Returns maximum font size text can reach.

Returns:
maximum font size text can reach

getMinimumFontSize

public int getMinimumFontSize()
Returns minimum font size text can reach.

Returns:
minimum font size text can reach

setMaximumFontSize

public void setMaximumFontSize(int newMax)
Sets maximum font size text can reach.

Parameters:
newMax - new maximum font size text can reach

setMinimumFontSize

public void setMinimumFontSize(int newMin)
minimum font size text can reach

Parameters:
newMin - new minimum font size text can reach


Copyright © 2010. All Rights Reserved.