KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sshtools > ui > awt > MultilineLabel


1 /* HEDAER */
2 package com.sshtools.ui.awt;
3
4 import java.awt.Font JavaDoc;
5 import java.awt.GridBagConstraints JavaDoc;
6 import java.awt.GridBagLayout JavaDoc;
7 import java.awt.Label JavaDoc;
8 import java.awt.Panel JavaDoc;
9 import java.util.StringTokenizer JavaDoc;
10
11 /**
12  * Swing component that takes a string, splits it up into lines based on the
13  * newline character and displays each line.
14  *
15  * @author $Author: lee $
16  */

17 public class MultilineLabel extends Panel JavaDoc {
18   // Private instance variables
19
private GridBagConstraints JavaDoc constraints;
20
21   private String JavaDoc text;
22   private int alignment;
23
24   /**
25    * Creates a new MultilineLabel object.
26    */

27   public MultilineLabel() {
28     this(""); //$NON-NLS-1$
29
}
30
31   /**
32    * Creates a new MultilineLabel object.
33    *
34    * @param text
35    */

36   public MultilineLabel(String JavaDoc text) {
37     super(new GridBagLayout JavaDoc());
38     constraints = new GridBagConstraints JavaDoc();
39     constraints.anchor = GridBagConstraints.NORTHWEST;
40     constraints.fill = GridBagConstraints.NONE;
41     setText(text);
42   }
43
44   /**
45    * Set the font
46    *
47    * @param f font
48    */

49   public void setFont(Font JavaDoc f) {
50     super.setFont(f);
51     for (int i = 0; i < getComponentCount(); i++) {
52       getComponent(i).setFont(f);
53     }
54   }
55
56   /**
57    * Set the font
58    *
59    * @param text
60    */

61   public void setText(String JavaDoc text) {
62     this.text = text;
63     invalidate();
64     removeAll();
65     StringTokenizer JavaDoc tok = new StringTokenizer JavaDoc(text, "\n"); //$NON-NLS-1$
66
constraints.weighty = 0.0;
67     constraints.weightx = 1.0;
68     while (tok.hasMoreTokens()) {
69       String JavaDoc t = tok.nextToken();
70 // if (!tok.hasMoreTokens()) {
71
// constraints.weighty = 1.0;
72
// }
73
Label JavaDoc l = new Label JavaDoc(t);
74       UIUtil.gridBagAdd(this, l, constraints,
75           GridBagConstraints.REMAINDER);
76     }
77     validate();
78     repaint();
79   }
80
81   /**
82    * Get the text
83    *
84    * @return text
85    */

86   public String JavaDoc getText() {
87     return text;
88   }
89   
90   /**
91    * Set the alignment. Uses <code>GridBagConstraints.anchor</code>
92    *
93    * @param alignment alignment
94    */

95   public void setAlignment(int alignment) {
96     constraints.anchor = alignment;
97     setText(text);
98   }
99 }
Popular Tags