문제

SWT에 HTML a href 스타일 링크를 위젯으로 생성하는 Link 클래스가 있다는 것을 알고 있지만 StyledText 컨트롤의 특정 텍스트가 표시되고 링크로 작동하도록 하는 방법을 찾으려고 노력하지 않았습니다.

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

도움이 되었습니까?

해결책

JFace 3.5부터 링크에 대한 특별한 스타일이 있습니다.

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

이렇게 하면 링크를 식별하는 것이 훨씬 더 간단해지고 스타일에 URL을 저장할 수 있습니다.자동으로 링크를 찾으려면 패턴을 찾으세요. http://[^ ] (링크에는 공백이 허용되지 않습니다) 가져온 줄에 스타일을 추가합니다.

다른 팁

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 위젯에 자동으로 추가하는 데 사용하는 일부 코드를 붙여넣을 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top