可变Link颜色的Link控件的实现

一、问题
    SWT中的Link控件的link颜色只能为蓝色,如果Link的背景是深色的话,就会导致Link看起来比较费劲。

二、控件代码

package study.swt;

import org.apache.commons.lang.StringUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.accessibility.ACC;
import org.eclipse.swt.accessibility.Accessible;
import org.eclipse.swt.accessibility.AccessibleControlAdapter;
import org.eclipse.swt.accessibility.AccessibleControlEvent;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseMoveListener;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.events.TraverseEvent;
import org.eclipse.swt.events.TraverseListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.graphics.TextLayout;
import org.eclipse.swt.graphics.TextStyle;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.TypedListener;

/**
 * <b>系统名称:</b>Digital Cinema心得--SWT学习与使用<br>
 * <b>技能名称:</b>可变Link颜色的Link控件<br>
 * <b>处理说明:</b> SWT中的Link控件的link颜色只能为蓝色,如果Link的背景是深色的话,就会导致Link看起来比较费劲。本控件提供了一个setLinkColor()方法设置Link的颜色。<br>
 * <b>变更履历:</b>2007/10/16 MuChunYu Create<br>
 * <br>
 *
 * @author Mu ChunYu
 * @version 1.0 2007/07/04 初版
 * <p>
 */
public class ColoredLink extends Canvas {

    /** Link文字 */
    private String text = null;

    /** Link文字与边框的距离 */
    private static final int INDENT = 3;

    /** 画Link的TextLayout */
    private TextLayout layout = null;

    /** Link的颜色 */
    private Color linkColor = null;

    /** 横向的边框 */
    private int hIndent = INDENT;

    /** 纵向的边框 */
    private int vIndent = INDENT;

    /** Link的范围 */
    private Rectangle rect = null;

    /**
     * <b>机能概要:</b> 构造函数。<br>
     * <br>
     * <b>处理流程:</b> <br>
     * <ul>
     * <li>调用父类的构造函数
     * <li>初始化TextLayou

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值