Domanda

So SWT ha una classe di collegamento per creare HTML un link href stile come widget, ma io Wast cercando di trovare un modo per rendere certo testo in un controllo StyledText apparire e funzionare come un link.

Mi sento come Eclipse fa questo nella loro editor di codice se si tiene premuto il controllo e il mouse sopra un nome di metodo, ma so che l'editor Java Eclipse è molto più complicato di un controllo StyledText.

È stato utile?

Soluzione

Dal JFace 3.5, c'è uno stile speciale per i collegamenti:

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

In questo modo è molto più semplice per identificare un collegamento ed è possibile memorizzare l'URL nella stile. Per quanto riguarda la ricerca automaticamente i collegamenti, basta guardare per il http://[^ ] modello (gli spazi non sono ammessi in collegamenti) nelle linee che si ottiene e aggiunge lo stile.

Altri suggerimenti

È necessario aggiungere 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;
  }
}

Il Javadoc per LineStyleListener vi darà qualche informazione in più.

Per aggiungere il comportamento del clic, è necessario un po 'di logica:. Potrei anche incollare del codice che utilizziamo per aggiungere automaticamente HTML in stile link cliccabili URL in un widget StyledText se che avrebbe aiutato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top