Frage

Ich weiß SWT eine Link-Klasse hat einen href Stil Links als Widgets erstellen HTML, aber ich wast versucht, einen Weg zu finden, einen bestimmten Text in einer StyledText Steuerelement angezeigt und die Funktion als Bindeglied zu machen.

Ich fühle mich wie Eclipse tut dies in ihrem Code-Editor, wenn Sie die Kontrolle halten und einen Methodennamen schweben über, aber ich weiß, dass der Eclipse-Java-Editor viel komplizierter als eine StyledText Kontrolle ist.

War es hilfreich?

Lösung

Da JFace 3.5, gibt es einen speziellen Stil für Links:

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

Dies macht es viel einfacher, einen Link zu identifizieren und Sie die URL im Stil zu speichern. Was automatisch Links zu finden, suchen Sie einfach nach dem Muster http://[^ ] (Rohlinge werden in Links nicht erlaubt) in den Zeilen, die Sie den Stil erhalten und hinzuzufügen.

Andere Tipps

Sie benötigen einen LineStyleListener zum StyledText Widget hinzufügen:

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;
  }
}

Die javadoc für LineStyleListener wird Ihnen einige weitere Informationen.

das Klickverhalten hinzuzufügen, müssen Sie etwas mehr Logik. Ich habe auch einige Codes einfügen könnte, die wir automatisch verwenden, um HTML-Stil anklickbare Links URL in einem StyledText Widget hinzufügen, wenn das helfen würde

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top