7

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

コントロールを押したままメソッド名にカーソルを合わせると、Eclipseはコードエディターでこれを行うように感じますが、EclipseのJavaエディターはStyledTextコントロールよりもはるかに複雑であることを私は知っています。

4

2 に答える 2

8

JFace 3.5以降、リンクには特別なスタイルがあります。

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

これにより、リンクの識別がはるかに簡単になり、URLをスタイルに保存できます。http://[^ ]リンクの自動検索については、取得した行のパターン(リンクに空白は使用できません)を探して、スタイルを追加するだけです。

于 2010-01-01T20:07:03.660 に答える
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 ウィジェットに自動的に追加するために使用するコードを貼り付けることもできます。

于 2009-10-28T05:32:08.457 に答える