The following class will give you a label with underlined text.
public class UnderlinedLabel extends java.awt.Label
{
public UnderlinedLabel()
{
this("");
}
public UnderlinedLabel(String text)
{
super(text);
}
public void paint(Graphics g)
{
Rectangle r;
super.paint(g);
//here's the trick
r = g.getClipBounds();
g.drawLine(0,
r.height -
this.getFontMetrics(this.getFont()).getDescent(),
this.getFontMetrics(this.getFont()).stringWidth(this.getText()),
r.height -
this.getFontMetrics(this.getFont()).getDescent()
);
}
Now if you have a panel called p on a form or dialog, you can:
UnderlinedLabel ull = new UnderlinedLabel();
Rectangle r = new Rectangle(5,5,150,30);
ull.setBounds(r);
ull.setText("I'M UNDERLINED");
panel1.add(ull);
You'll have a label showing underlined text.