package de.tutorials;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileReader;
import javax.swing.ButtonModel;
import javax.swing.Icon;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JToggleButton;
import javax.swing.UIManager;
import com.sun.stylesheet.Stylesheet;
import com.sun.stylesheet.css.CSSParser;
public class Testing extends JFrame
{
JToggleButton btn = new JToggleButton("Disable/Enable");
JCheckBox cbx = new JCheckBox(new Icon(){
final static int csize = 13;
public void paintIcon(Component c, Graphics g, int x, int y) {
JCheckBox cb = (JCheckBox) c;
ButtonModel model = cb.getModel();
// outer bevel
if (!cb.isBorderPaintedFlat()) {
// Outer top/left
g.setColor(UIManager.getColor("CheckBox.shadow"));
g.drawLine(x, y, x + 11, y);
g.drawLine(x, y + 1, x, y + 11);
// Outer bottom/right
g.setColor(UIManager.getColor("CheckBox.highlight"));
g.drawLine(x + 12, y, x + 12, y + 12);
g.drawLine(x, y + 12, x + 11, y + 12);
// Inner top.left
g.setColor(UIManager.getColor("CheckBox.darkShadow"));
g.drawLine(x + 1, y + 1, x + 10, y + 1);
g.drawLine(x + 1, y + 2, x + 1, y + 10);
// Inner bottom/right
g.setColor(UIManager.getColor("CheckBox.light"));
g.drawLine(x + 1, y + 11, x + 11, y + 11);
g.drawLine(x + 11, y + 1, x + 11, y + 10);
// inside box
if ((model.isPressed() && model.isArmed())
|| !model.isEnabled()) {
g.setColor(UIManager.getColor("CheckBox.background"));
} else {
g.setColor(UIManager
.getColor("CheckBox.interiorBackground"));
}
g.fillRect(x + 2, y + 2, csize - 4, csize - 4);
} else {
g.setColor(UIManager.getColor("CheckBox.shadow"));
g.drawRect(x + 1, y + 1, csize - 3, csize - 3);
if ((model.isPressed() && model.isArmed())
|| !model.isEnabled()) {
g.setColor(UIManager.getColor("CheckBox.background"));
} else {
g.setColor(UIManager
.getColor("CheckBox.interiorBackground"));
}
g.fillRect(x + 2, y + 2, csize - 4, csize - 4);
}
if (model.isEnabled()) {
g.setColor(UIManager.getColor("CheckBox.darkShadow"));
} else {
g.setColor(UIManager.getColor("CheckBox.shadow"));
}
// paint check
if (model.isSelected()) {
/* ######################################################
*
* Hier die Farbe hart setzen
*
* ######################################################
*/
g.setColor(Color.BLACK);
g.drawLine(x + 9, y + 3, x + 9, y + 3);
g.drawLine(x + 8, y + 4, x + 9, y + 4);
g.drawLine(x + 7, y + 5, x + 9, y + 5);
g.drawLine(x + 6, y + 6, x + 8, y + 6);
g.drawLine(x + 3, y + 7, x + 7, y + 7);
g.drawLine(x + 4, y + 8, x + 6, y + 8);
g.drawLine(x + 5, y + 9, x + 5, y + 9);
g.drawLine(x + 3, y + 5, x + 3, y + 5);
g.drawLine(x + 3, y + 6, x + 4, y + 6);
}
}
public int getIconWidth() {
return csize;
}
public int getIconHeight() {
return csize;
}
}
);
public Testing() throws Exception
{
cbx.setLabel("<html>Hallo</html>");
setLocation(400,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add(cbx,BorderLayout.NORTH);
getContentPane().add(btn,BorderLayout.SOUTH);
// JavaCSS gescheitert!
/*FileReader in = new FileReader("checkbox.css");
Stylesheet stylesheet = CSSParser.parse(in);;
in.close();
stylesheet.applyTo(this);
*/
pack();
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
cbx.setEnabled(!btn.isSelected());}});
}
public static void main(String[] args) throws Exception{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
new Testing().setVisible(true);
}
}