Pregunta

Yo sé SWT tiene una clase de Enlace para crear HTML a href enlaces de estilo como widgets, pero estabas tratando de encontrar una manera de hacer un texto determinado en un control StyledText aparecen y funcionan como un enlace.

Me siento como Eclipse hace esto en su editor de código mientras se mantiene pulsado el control y el ratón sobre un nombre de método, pero sé que el editor de Java Eclipse es mucho más complicado que un control StyledText.

¿Fue útil?

Solución

Desde JFace 3.5, hay un estilo especial para los enlaces:

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

Esto hace que sea mucho más fácil de identificar un enlace y se puede almacenar la dirección URL en el estilo. En cuanto a encontrar automáticamente los enlaces, sólo tiene que buscar el patrón http://[^ ] (espacios en blanco no están permitidos en enlaces) en las líneas que se obtiene y agrega el estilo.

Otros consejos

Es necesario añadir un LineStyleListener al widget 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;
  }
}

El Javadoc para LineStyleListener le dará alguna información más.

Para añadir el comportamiento de la pulsación, que necesita un poco más de lógica:. También pude pegar un código que usamos para añadir automáticamente al estilo HTML hacer clic en enlaces URL en un widget StyledText si eso ayuda

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top