Java by API/javax.swing.plaf.basic/BasicCheckBoxUI

Материал из Java эксперт
Перейти к: навигация, поиск

extends BasicCheckBoxUI

   <source lang="java">

import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Insets; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.AbstractButton; import javax.swing.ButtonModel; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.plaf.ruponentUI; import javax.swing.plaf.basic.BasicCheckBoxUI; public class MyCheckBoxUI extends BasicCheckBoxUI implements

   java.io.Serializable, MouseListener {
 private final static MyCheckBoxUI buttonUI = new MyCheckBoxUI();
 public MyCheckBoxUI() {
 }
 public static ComponentUI createUI(JComponent c) {
   return buttonUI;
 }
 public void installUI(JComponent c) {
   super.installUI(c);
   c.setBackground(Color.red);
   c.addMouseListener(this);
 }
 public void uninstallUI(JComponent c) {
   super.uninstallUI(c);
   c.removeMouseListener(this);
 }
 public void paint(Graphics g, JComponent c) {
   AbstractButton b = (AbstractButton) c;
   ButtonModel model = b.getModel();
   Dimension d = b.getSize();
   g.setFont(c.getFont());
   FontMetrics fm = g.getFontMetrics();
   g.setColor(Color.white);
   g.drawString("Am I a check box", 10, 10);
 }
 public void mouseClicked(MouseEvent e) {
 }
 public void mousePressed(MouseEvent e) {
 }
 public void mouseReleased(MouseEvent e) {
 }
 public void mouseEntered(MouseEvent e) {
   JComponent c = (JComponent) e.getComponent();
   c.setBackground(Color.blue);
   c.repaint();
 }
 public void mouseExited(MouseEvent e) {
   JComponent c = (JComponent) e.getComponent();
   c.setBackground(Color.red);
   c.repaint();
 }
 public static void main(String[] argv) {
   JFrame f = new JFrame();
   f.setSize(400, 300);
   f.setLayout(new FlowLayout());
   JPanel p = new JPanel();
   JCheckBox bt1 = new JCheckBox("Click Me");
   bt1.setUI(new MyCheckBoxUI());
   p.add(bt1);
   f.add(p);
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setVisible(true);
 }

}

 </source>