001         package com.croftsoft.core.animation.painter;
002    
003         import java.awt.Graphics2D;
004         import javax.swing.Icon;
005         import javax.swing.JComponent;
006    
007         import com.croftsoft.core.lang.NullArgumentException;
008    
009         /*********************************************************************
010         * Paints an Icon at an (x,y) position.
011         *
012         * @version
013         *   2003-07-11
014         * @since
015         *   2002-02-14
016         * @author
017         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
018         *********************************************************************/
019    
020         public class  IconPainter
021           extends AbstractXYPainter
022         //////////////////////////////////////////////////////////////////////
023         //////////////////////////////////////////////////////////////////////
024         {
025    
026         protected Icon  icon;
027    
028         //////////////////////////////////////////////////////////////////////
029         //////////////////////////////////////////////////////////////////////
030    
031         public  IconPainter (
032           int   x,
033           int   y,
034           Icon  icon )
035         //////////////////////////////////////////////////////////////////////
036         {
037           super ( x, y );
038    
039           setIcon ( icon );
040         }
041    
042         public  IconPainter ( Icon  icon )
043         //////////////////////////////////////////////////////////////////////
044         {
045           this ( 0, 0, icon );
046         }
047    
048         //////////////////////////////////////////////////////////////////////
049         // accessor methods
050         //////////////////////////////////////////////////////////////////////
051    
052         public Icon  getIcon ( ) { return icon; }
053    
054         //////////////////////////////////////////////////////////////////////
055         // mutator methods
056         //////////////////////////////////////////////////////////////////////
057    
058         public void  setIcon ( Icon  icon )
059         //////////////////////////////////////////////////////////////////////
060         {
061           NullArgumentException.check ( this.icon = icon );
062         }
063    
064         //////////////////////////////////////////////////////////////////////
065         //////////////////////////////////////////////////////////////////////
066    
067         public void  paint (
068           JComponent  component,
069           Graphics2D  graphics )
070         //////////////////////////////////////////////////////////////////////
071         {
072           icon.paintIcon ( component, graphics, x, y );
073         }
074    
075         //////////////////////////////////////////////////////////////////////
076         //////////////////////////////////////////////////////////////////////
077         }