package com.example.client.utils;
import sun.swing.SwingUtilities2;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.metal.MetalLabelUI;
/**
* Created at 2006-8-7 9:46:32
* 必填项标签
*
* @author Brad.Wu
* @version 1.0
*/
@SuppressWarnings( "serial" )
public class RequiredLabel extends JLabel {
public RequiredLabel() {
}
public RequiredLabel(String text) {
super("* " + text);
}
/**
* (非 Javadoc)
*
* @see javax.swing.JLabel#setText(java.lang.String)
*/
@Override
public void setText(String text) {
if (text.startsWith("* "))
super.setText(text);
else
super.setText("* " + text);
}
/**
* (非 Javadoc)
*
* @see javax.swing.JLabel#updateUI()
*/
@Override
public void updateUI() {
setUI(new RequiredLabelUI());
}
/**
* Created at 2006-8-7 9:53:32
* 必填项标签UI
*
* @author Brad.Wu
* @version 1.0
*/
static class RequiredLabelUI extends MetalLabelUI {
protected static RequiredLabelUI labelUI = new RequiredLabelUI();
public static ComponentUI createUI(JComponent c) {
return labelUI;
}
/**
* (非 Javadoc)
*
* @see javax.swing.plaf.basic.BasicLabelUI#paintEnabledText(javax.swing.JLabel,
* java.awt.Graphics, java.lang.String, int, int)
*/
@Override
protected void paintEnabledText(JLabel l, Graphics g, String s, int textX, int textY) {
int mnemIndex = l.getDisplayedMnemonicIndex();
g.setColor(l.getForeground());
int x = l.getFontMetrics(l.getFont()).stringWidth("*");
SwingUtilities2.drawStringUnderlineCharAt(l, g, s.substring(1), mnemIndex, textX + x,
textY);
g.setColor(new Color(255, 100, 100));
SwingUtilities2.drawString(l, g, "*", textX, textY + 2);
}
}
}