1 2 package com.sshtools.ui.awt; 3 4 import java.awt.Font ; 5 import java.awt.GridBagConstraints ; 6 import java.awt.GridBagLayout ; 7 import java.awt.Label ; 8 import java.awt.Panel ; 9 import java.util.StringTokenizer ; 10 11 17 public class MultilineLabel extends Panel { 18 private GridBagConstraints constraints; 20 21 private String text; 22 private int alignment; 23 24 27 public MultilineLabel() { 28 this(""); } 30 31 36 public MultilineLabel(String text) { 37 super(new GridBagLayout ()); 38 constraints = new GridBagConstraints (); 39 constraints.anchor = GridBagConstraints.NORTHWEST; 40 constraints.fill = GridBagConstraints.NONE; 41 setText(text); 42 } 43 44 49 public void setFont(Font f) { 50 super.setFont(f); 51 for (int i = 0; i < getComponentCount(); i++) { 52 getComponent(i).setFont(f); 53 } 54 } 55 56 61 public void setText(String text) { 62 this.text = text; 63 invalidate(); 64 removeAll(); 65 StringTokenizer tok = new StringTokenizer (text, "\n"); constraints.weighty = 0.0; 67 constraints.weightx = 1.0; 68 while (tok.hasMoreTokens()) { 69 String t = tok.nextToken(); 70 Label l = new Label (t); 74 UIUtil.gridBagAdd(this, l, constraints, 75 GridBagConstraints.REMAINDER); 76 } 77 validate(); 78 repaint(); 79 } 80 81 86 public String getText() { 87 return text; 88 } 89 90 95 public void setAlignment(int alignment) { 96 constraints.anchor = alignment; 97 setText(text); 98 } 99 } | Popular Tags |