| 1 30 31 package rcm.awt; 32 33 import java.awt.*; 34 35 public class MultiLineLabel extends Canvas { 36 private String text; 37 private MultiLineString multilabel; 38 private int alignment; 39 40 private Dimension minSize; 42 public MultiLineLabel (String string) { 43 setText (string); 44 setAlignment (Label.LEFT); 45 } 46 47 public MultiLineLabel (String string, int alignment) { 48 setText (string); 49 setAlignment (alignment); 50 } 51 52 public String getText () { 53 return text; 54 } 55 public void setText (String string) { 56 text = string; 57 multilabel = new MultiLineString (string); 58 minSize = null; 59 } 60 61 public int getAlignment () { 62 return alignment; 63 } 64 public void setAlignment (int align) { 65 alignment = align; 66 } 67 68 public void setFont (Font font) { 69 super.setFont (font); 70 minSize = null; 71 } 72 73 public Dimension minimumSize () { 74 if (minSize == null) { 76 FontMetrics fm = getFontMetrics (getFont ()); 77 minSize = new Dimension (multilabel.getWidth (fm), 78 multilabel.getHeight (fm)); 79 } 80 return minSize; 81 } 82 83 public Dimension preferredSize () { 84 return minimumSize (); 85 } 86 87 public synchronized void paint (Graphics g) { 88 g.setFont (getFont ()); 89 multilabel.draw (g, 0, 0, alignment); 90 } 91 } 92 93 | Popular Tags |