1 19 20 28 29 package org.netbeans.modules.xml.schema.abe; 30 31 import java.awt.Color ; 32 import java.awt.Dimension ; 33 import java.awt.Graphics ; 34 import java.awt.Graphics2D ; 35 import java.awt.Image ; 36 import java.awt.event.MouseAdapter ; 37 import java.awt.event.MouseEvent ; 38 import java.net.URL ; 39 import javax.swing.JButton ; 40 41 45 public class RoundExpandCollapseButton extends JButton { 46 private static final long serialVersionUID = 7526472295622776147L; 47 public static final int WIDTH = 15; 48 public static final int HEIGHT = 15; 49 boolean mouseOverMe = false; 50 51 public RoundExpandCollapseButton(String str, boolean autoChangeState) { 52 super(str); 53 setOpaque(false); 54 addMouseListener(new MouseAdapter (){ 55 public void mouseExited(MouseEvent e) { 56 super.mouseExited(e); 57 mouseOverMe = false; 58 repaint(); 59 } 60 61 public void mouseEntered(MouseEvent e) { 62 super.mouseEntered(e); 63 mouseOverMe = true; 64 repaint(); 65 } 66 67 }); 68 } 69 70 public void paint(Graphics g){ 71 Graphics2D g2d = (Graphics2D ) g; 73 77 78 if (super.getText().equals("+")){ 79 String str = "/org/netbeans/modules/xml/schema/abe/resources/"; 81 str += mouseOverMe ? "expandButtonMouseOver.png" : "expandButton.png"; 82 str = dragMode ? "/org/netbeans/modules/xml/schema/abe/resources/expandButtonDrag.png" : str; 83 URL url = RoundExpandCollapseButton.class.getResource(str); 84 Image img = new javax.swing.ImageIcon (url).getImage(); 85 g2d.drawImage(img, 4, 4, null); 86 }else{ 87 String str = "/org/netbeans/modules/xml/schema/abe/resources/"; 89 str += mouseOverMe ? "collapseButtonMouseOver.png" : "collapseButton.png"; 90 str = dragMode ? "/org/netbeans/modules/xml/schema/abe/resources/collapseButtonDrag.png" : str; 91 URL url = RoundExpandCollapseButton.class.getResource(str); 92 Image img = new javax.swing.ImageIcon (url).getImage(); 93 g2d.drawImage(img, 4, 4, null); 94 } 95 96 97 98 99 } 100 101 public Dimension getPreferredSize(){ 102 Dimension dim = new Dimension (WIDTH, HEIGHT); 103 return dim; 104 } 105 106 public Dimension getMinimumSize(){ 107 return getPreferredSize(); 108 } 109 110 111 public Dimension getMaximumSize(){ 112 return getPreferredSize(); 113 } 114 115 boolean dragMode = false; 116 public void setDragMode(boolean dragMode){ 117 this.dragMode = dragMode; 118 repaint(); 119 } 120 } 121 | Popular Tags |