2009-09-29 2 views
6

SWT에는 위젯으로 href 스타일 링크를 HTML로 만드는 Link 클래스가 있지만 StyledText 컨트롤의 특정 텍스트가 링크로 나타나고 작동하도록하는 방법을 찾기 위해 노력하고 있습니다.HTML 스타일 링크를 SWT StyledText에 추가 할 수 있습니까?

컨트롤을 누르고 메서드 이름 위로 마우스를 가져 가면 Eclipse가 코드 편집기에서이 작업을 수행하지만 Eclipse Java 편집기가 StyledText 컨트롤보다 훨씬 복잡하다는 것을 알고 있습니다.

답변

7

는 JFace는 3.5 이후, 링크에 대한 특별한 스타일이 있습니다. 자동으로 링크를 찾는 것과 마찬가지로, 당신이 얻은 라인에서 http://[^ ] (공백은 링크에 허용되지 않음) 패턴을 찾고 스타일을 추가하십시오.

2

당신은 StyledText 위젯에 LineStyleListener을 추가해야 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; 
    } 
} 

javadoc의 당신에게 좀 더 많은 정보를 제공 할 것입니다.

클릭 동작을 추가하려면 좀 더 많은 논리가 필요합니다. HTML 스타일의 클릭 가능한 링크 URL이 StyledText 위젯에 자동으로 추가되도록 사용하는 코드를 붙일 수 있습니다. 이것은 훨씬 더 간단한 링크를 확인하고 당신은 스타일에 URL을 저장할 수 있습니다

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

:

+0

감사합니다! 링크를 자동으로 추가하는 데 사용하는 코드를 보는 데 관심이 있지만 도움이됩니다. – thehiatus

관련 문제