48 lines
1.4 KiB
Java
48 lines
1.4 KiB
Java
import javax.swing.* ;
|
|
import java.awt.* ;
|
|
|
|
public class Greybars extends JFrame {
|
|
private int width ;
|
|
private int height ;
|
|
|
|
public Greybars( ) {
|
|
super( "grey bars example!" ) ;
|
|
width = 640 ;
|
|
height = 320 ;
|
|
setSize( width , height ) ;
|
|
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ) ;
|
|
setVisible( true ) ;
|
|
}
|
|
|
|
public void paint ( Graphics g ) {
|
|
int run = 0 ;
|
|
double colorcomp = 0.0 ; //component of the color
|
|
for ( int columncount = 8 ; columncount < 128 ; columncount *= 2 ) {
|
|
double colorgap = 255.0 / (columncount - 1) ; //by this gap we change the background color
|
|
int columnwidth = width / columncount ;
|
|
int columnheight = height / 4 ;
|
|
if ( run % 2 == 0 ) //switches color directions with every for loop
|
|
colorcomp = 0.0 ;
|
|
else {
|
|
colorcomp = 255.0 ;
|
|
colorgap *= -1.0 ;
|
|
}
|
|
int ystart = 0 + columnheight * run ;
|
|
int xstart = 0 ;
|
|
for ( int i = 0 ; i < columncount ; i++ ) {
|
|
int icolor = (int)Math.round(colorcomp) ; //round to nearer integer
|
|
Color nextColor = new Color( icolor , icolor, icolor ) ;
|
|
g.setColor( nextColor ) ;
|
|
g.fillRect( xstart , ystart , columnwidth , columnheight ) ;
|
|
xstart += columnwidth ;
|
|
colorcomp += colorgap ;
|
|
}
|
|
run++ ;
|
|
}
|
|
}
|
|
|
|
public static void main( String[ ] args ) {
|
|
Greybars gb = new Greybars( ) ;
|
|
}
|
|
}
|