1 19 20 21 package org.netbeans.modules.form.fakepeer; 22 23 import java.awt.*; 24 25 29 class FakeButtonPeer extends FakeComponentPeer 30 { 31 FakeButtonPeer(Button target) { 32 super(target); 33 } 34 35 Component createDelegate() { 36 return new Delegate(); 37 } 38 39 public void setLabel(String label) { 40 } 41 42 46 private class Delegate extends Component 47 { 48 Delegate() { 49 this.setBackground(SystemColor.control); 50 this.setForeground(SystemColor.controlText); 51 } 52 53 public void paint(Graphics g) { 54 Button target =(Button) _target; 55 Dimension sz = target.getSize(); 56 57 g.setColor(target.getBackground()); 58 FakePeerUtils.drawButton(g, 0, 0, sz.width, sz.height); 59 60 String label = target.getLabel(); 61 if (label == null) 62 return; 63 64 g.setFont(target.getFont()); 65 66 FontMetrics fm = g.getFontMetrics(); 67 int w = fm.stringWidth(label), 68 h = fm.getHeight() - fm.getDescent(), 69 x = (sz.width - w) / 2, 70 y = (sz.height - h) / 2 + h - 2; 71 72 if (target.isEnabled()) { 73 g.setColor(target.getForeground()); 74 } 75 else { 76 g.setColor(SystemColor.controlLtHighlight); 77 g.drawString(label, x+1, y+1); 78 g.setColor(SystemColor.controlShadow); 79 } 80 81 g.drawString(label, x, y); 82 } 83 84 public Dimension getMinimumSize() { 85 String label = ((Button)_target).getLabel(); 86 87 FontMetrics fm = this.getFontMetrics(this.getFont()); 88 int w = fm.stringWidth(label); 89 int h = fm.getHeight(); 90 91 return new Dimension(w + MARGINS.left + MARGINS.right, 92 h + MARGINS.top + MARGINS.bottom); 93 } 94 } 95 96 private static final Insets MARGINS = new Insets(4, 8, 4, 8); 97 } 98 | Popular Tags |