2009-09-29 16 views
6

私はSWTがHTMLをhrefスタイルのリンクをウィジェットとして作成するLinkクラスを持っていることを知っていますが、StyledTextコントロールの特定のテキストをリンクとして表示して機能させる方法を見つけようとしています。SWT StyledTextにHTMLスタイルのリンクを追加することはできますか?

メソッド名の上にマウスを置いてコントロールすると、コードエディタでEclipseが実行するように感じますが、EclipseのJavaエディタはStyledTextコントロールよりもはるかに複雑です。

答えて

7

は、JFaceの3.5ので、リンクのための特別なスタイルがあります。リンクを自動的に検索する場合は、取得した行にパターンhttp://[^ ](空白はリンクで許可されていません)を探してスタイルを追加してください。

2

あなたはStyledTextウィジェットにLineStyleListenerを追加する必要があります。

textField.addLineStyleListener (...); 

... 

public void lineGetStyle (LineStyleEvent e) 
{ 
    // alloc a set of styles for the requested line 
    e.styles = new StyleRange [...]; 

    for (int i = 0; i < e.styles.length; i++) 
    { 
    StyleRange styleRange = new StyleRange(); 

    styleRange.start = ...; 
    styleRange.length = ...; 
    styleRange.underline = true; 
    styleRange.foreground = <URL colour>; 

    e.styles [i] = styleRange; 
    } 
} 

LineStyleListenerはあなたにいくつかのより多くの情報を与えるのjavadoc。

クリックの振る舞いを追加するには、いくつかのロジックが必要です。HTMLスタイルのクリック可能リンクURLをStyledTextウィジェットに自動的に追加するコードを貼り付けることもできます。これはそれがはるかに簡単なリンクを識別するために、あなたがスタイルでURLを保存することができます

styleRange.underlineStyle = SWT.UNDERLINE_LINK; 
styleRange.data = "http://www.google.com/"; 

+0

ありがとうございます!私はリンクを自動的に追加するために使用するコードを見ることに興味がありますが、これは参考になります。 – thehiatus

関連する問題