首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 必填项的标签, 显示一个红色的星号"*"
【标  题】:必填项的标签, 显示一个红色的星号"*"
【关键字】:
【来  源】:http://blog.csdn.net/bradwoo8621/archive/2007/03/07/1523140.aspx

必填项的标签, 显示一个红色的星号"*"

想必每个数据对象都会有些必填项, 因此做了一个标签提示哪个是必填项.
这个也是重写UI的, 不过和M2那个Label一样, 因为Label是透明的, 应该可以应用于各种L&F.
 
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;
import
 com.sun.java.swing.SwingUtilities2;
/**
 * Created at 2006-8-7 9:46:32<br>
 * 必填项标签
 *
 * 
@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<br>
  * 必填项标签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(255100100
));
   SwingUtilities2.drawString(l, g, 
"*", textX, textY + 2
);
  }

 }

}


 
java第二课:【上一篇】
可以显示M2的标签, 2是上标:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 以太网技术及应用趋势(2)
  • 怎样隐藏应用程序的任务栏图标
  • 全国计算机等级考试考生须知
  • C函数的一个规范写法
  • Remoting Discussion
  • NETSCREEN防火墙所用到的一些术语的说明
  • Linux下cron的使用
  • C++中的静态成员
  • VB.NET 中 使用 ListView 控件的简单例子
  • ku shen
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.