public static void paintCheckedBackground ( Component c , Graphics g , int x , int y , int width , int height ) { if ( backgroundImage == null ) { backgroundImage = new BufferedImage ( 64 , 64 , BufferedImage . TYPE_INT_ARGB ) ; Graphics bg = backgroundImage . createGraphics ( ) ; for ( int by = 0 ; by < 64 ; by += 8 ) { for ( int bx = 0 ; bx < 64 ; bx += 8 ) { bg . setColor ( ( ( bx ^ by ) & 8 ) != 0 ? Color . lightGray : Color . white ) ; bg . fillRect ( bx , by , 8 , 8 ) ; } } bg . dispose ( ) ; } if ( backgroundImage != null ) { Shape saveClip = g . getClip ( ) ; Rectangle r = g . getClipBounds ( ) ; if ( r == null ) r = new Rectangle ( c . getSize ( ) ) ; r = r . intersection ( new Rectangle ( x , y , width , height ) ) ; g . setClip ( r ) ; int w = backgroundImage . getWidth ( ) ; int h = backgroundImage . getHeight ( ) ; if ( w != - 1 && h != - 1 ) { int x1 = ( r . x / w ) * w ; int y1 = ( r . y / h ) * h ; int x2 = ( ( r . x + r . width + w - 1 ) / w ) * w ; int y2 = ( ( r . y + r . height + h - 1 ) / h ) * h ; for ( y = y1 ; y < y2 ; y += h ) for ( x = x1 ; x < x2 ; x += w ) g . drawImage ( backgroundImage , x , y , ) ; } g . setClip ( saveClip ) ; } }
Paint a check pattern used for a background to indicate image transparency .