62,614
社区成员
发帖
与我相关
我的任务
分享
private class CheckBoxIcon implements Icon{
/**
* 序列号
*/
private static final long serialVersionUID = -8237596219671909041L ;
/**
* 尺寸
*/
private final static int csize = 13 ;
/**
* 背景颜色
*/
private Color background ;
/**
* 构造方法
* @param color
*/
private CheckBoxIcon( Color color ){
background = color ;
}
@Override
public void paintIcon( Component c , Graphics g , int x , int y ){
AbstractButton b = ( AbstractButton )c ;
ButtonModel model = b.getModel() ;
boolean isSelected = model.isSelected() ;
boolean isRollover = model.isRollover() ;
if( isRollover ){
g.setColor( Color.GRAY ) ;
}
else{
g.setColor( Color.BLACK ) ;
}
g.drawRect( x , y , csize - 1 , csize - 1 ) ;
g.setColor( background ) ;
g.fillRect( x + 1 , y + 1 , csize - 2 , csize - 2 ) ;
if( isSelected ){
drawCheckIn( g , x , y ) ;
}
}
@Override
public int getIconWidth(){
return csize ;
}
@Override
public int getIconHeight(){
return csize ;
}
/**
* 画对钩
* @param g
*/
private void drawCheckIn( Graphics g , int x , int y ){
g.setColor( Color.BLACK ) ;
g.translate( x , y ) ;
g.drawLine( csize - 2 , 1 , csize - 2 , 2 ) ;
g.drawLine( csize - 3 , 2 , csize - 3 , 3 ) ;
g.drawLine( csize - 4 , 3 , csize - 4 , 4 ) ;
g.drawLine( csize - 5 , 4 , csize - 5 , 6 ) ;
g.drawLine( csize - 6 , 5 , csize - 6 , 8 ) ;
g.drawLine( csize - 7 , 6 , csize - 7 , 10 ) ;
g.drawLine( csize - 8 , 7 , csize - 8 , 10 ) ;
g.drawLine( csize - 9 , 6 , csize - 9 , 9 ) ;
g.drawLine( csize - 10 , 5 , csize - 10 , 8 ) ;
g.drawLine( csize - 11 , 5 , csize - 11 , 7 ) ;
g.drawLine( csize - 12 , 6 , csize - 12 , 6 ) ;
g.translate( -x , -y ) ;
}
}
}