1 31 32 package org.antlr.xjlib.appkit.gview.shape; 33 34 import org.antlr.xjlib.appkit.gview.base.Rect; 35 import org.antlr.xjlib.appkit.gview.base.Vector2D; 36 import org.antlr.xjlib.foundation.XJXMLSerializable; 37 38 import java.awt.*; 39 40 public class SLabel implements XJXMLSerializable { 41 42 protected Vector2D position = null; 43 protected String title = null; 44 protected Color color = Color.black; 45 protected boolean visible = true; 46 47 public SLabel() { 48 49 } 50 51 public void setTitle(String title) { 52 this.title = title; 53 } 54 55 public String getTitle() { 56 return title; 57 } 58 59 public void setPosition(Vector2D position) { 60 this.position = position; 61 } 62 63 public Vector2D getPosition() { 64 return position; 65 } 66 67 public void setPosition(double x, double y) { 68 setPosition(new Vector2D(x, y)); 69 } 70 71 public void setColor(Color color) { 72 this.color = color; 73 } 74 75 public Color getColor() { 76 return color; 77 } 78 79 public void setVisible(boolean flag) { 80 this.visible = flag; 81 } 82 83 public boolean isVisible() { 84 return visible; 85 } 86 87 public void draw(Graphics g) { 88 if(position == null || title == null || !visible) 89 return; 90 91 g.setColor(color); 92 SLabel.drawCenteredString(title, (int)position.getX(), (int)position.getY(), g); 93 } 94 95 public static void drawCenteredString(String s, double x, double y, Graphics g) { 96 if(s != null) { 97 FontMetrics fm = g.getFontMetrics(); 98 int xx = (int)(x-fm.stringWidth(s)*0.5); 99 int yy = (int)(y+fm.getHeight()*0.5); 100 g.drawString(s, xx, yy); 101 } 102 } 103 104 public static Rect getFrame(String s, double x, double y, Graphics g) { 105 if(s != null && g != null) { 106 FontMetrics fm = g.getFontMetrics(); 107 return new Rect(x-fm.stringWidth(s)*0.5, y-fm.getHeight()*0.5, 108 fm.stringWidth(s), fm.getHeight()); 109 } else 110 return new Rect(0, 0, 0, 0); 111 } 112 113 } 114 | Popular Tags |