@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
JCheckBox cb = (JCheckBox) c;
ButtonModel model = cb.getModel();
if (model.isEnabled()) {
if (model.isPressed() && model.isArmed()) {
g.setColor(MetalLookAndFeel.getControlShadow());
g.fillRect(x, y, iconWidth - 1, iconHeight - 1);
drawPressed3DBorder(g, x, y, iconWidth, iconHeight);
} else {
drawFlush3DBorder(g, x, y, iconWidth, iconHeight);
}
g.setColor(MetalLookAndFeel.getControlInfo());
} else {
g.setColor(MetalLookAndFeel.getControlShadow());
g.drawRect(x, y, iconWidth - 1, iconHeight - 1);
}
drawLine(g, x, y);
}