一、问题
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