2009-09-29 69 views
6

我知道SWT有一個鏈接類來創建HTML A HREF鏈接樣式的窗口小部件,但我赤身試圖找到一種方法,使在StyledText控制具有一定的文字顯示和功能的鏈接。HTML風格的鏈接是否可以添加到SWT StyledText?

我覺得如果你按住控制和方法名懸停在像Eclipse做到這一點在他們的代碼編輯器,但我知道Eclipse Java編輯器比StyledText控制要複雜得多。

回答

7

由於JFace的3.5,有一個鏈接一個特殊的風格:

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

這使得它更簡單,以確定一個鏈接,你可以存儲在樣式的URL。至於自動查找鏈接,只認準模式http://[^ ](不允許空白中的鏈接),在你得到,並添加樣式的線條。

2

你需要一個LineStyleListener添加到StyledText部件:

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部件是否會有所幫助。

+0

謝謝!我希望看到用於自動添加鏈接的代碼,但這很有幫助。 – thehiatus 2009-10-29 15:34:00

相關問題