# String als Link einfügen



## Cinimod (30. Jul 2003)

Hallo!

Ich möchte in ein HtmlDocument einen String als Link einfügen:

document = new HTMLDocument();
editorKit = new HTMLEditorKit();
pane = new JTextPane(document);
editorKit.install(pane);

in dem Document ist bereits ein Satz eingefügt:
document.insertString(document.getLength(), "Ein langer Satz", attributeSet);

das nachfolgende, einzufügende Wort soll jetzt als Link dargestellt werden.
Die einzige (nützliche) Methode, die ich gefunden habe, ist:

void insertHTML(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag)
Inserts HTML into an existing document.

Doch verstehe ich nicht, was "popDepth" und "pushDepth" bedeuten - bzw. werde aus der gegebenen
Erläuterung

popDepth - the number of ElementSpec.EndTagTypes to generate before inserting
pushDepth - the number of ElementSpec.StartTagTypes with a direction of
ElementSpec.JoinNextDirection that should be generated before inserting, but after the end tags have
been generated.

nicht schlau. Vielleicht gibt es auch eine andere, bessere Alternative?

Für Erklärungen bzw. Hilfe vielen Danke im voraus!


----------



## DTR (31. Jul 2003)

Ich kenne mich damit zwar auch nicht aus, aber warum baust du dir nicht selbst einen Link um den String herum und fügst den neuen String dann ein? Ich meine das ungefähr so

```
String link = "<a haref= ... >"+deinString+"</a>";
doc.insertString(doc.getLength(),link,attributSet);
```


----------



## Cinimod (31. Jul 2003)

Das Problem ist, dass der Text eben so wie ich ihn einfüge angezeigt wird,
ich will ihn aber als Link haben.


----------



## DTR (31. Jul 2003)

Ich kann die Methode insertHTML nicht finden. Zu welcher klasse gehört sie denn?


----------



## Cinimod (1. Aug 2003)

Gehört zu HTMLEditorKit....gehe am besten über den Index in der Doku.


----------



## mariopetr (1. Aug 2003)

hallo,

schaue dir mal die javadoc zu 
javax.swing.text.html
-HTMLWriter
-HTMLEditorKit
-HTMLDocument

das sollte eigentlich das richtige sein


----------



## Cinimod (3. Aug 2003)

Mmmm.....da schaue ich schon die ganze Zeit, finde aber nichts entsprechendes - oder habe ich das was übersehen?


----------



## mariopetr (3. Aug 2003)

HTMLEditorKit.insertHTML(..) sollte genau das machen was du brauchst.


----------



## Cinimod (4. Aug 2003)

Jetzt mal ernsthaft :wink: 
das ist ja genau die Methode, aus der ich nicht schlau werde - siehe meinen ersten Post zu dem Thema.


----------



## mariopetr (4. Aug 2003)

hallo, jetzt mal ernsthaft,  da ich mich da nicht so auskenne (bin mer der db und bl typ), habe ich in 5 minuten folgendes geschrieben (kompiliert und ausgefuehrt)

public static void main(String[] args)
	{
		HTMLDocument document=new HTMLDocument();
		HTMLEditorKit editor=new HTMLEditorKit();
		try
		{
			editor.insertHTML(document,0,"<a href=www.irgendwas.de> hallo",0,0,HTML.getTag("body"));
			editor.write(System.out,document,0,document.getLength());
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}		
	}

mit folgendem output

<html>
  <head>

  </head>
  <body>



      <body>
hallo
      </body>
    </p>
  </body>
</html>

es kann also nicht so schwer sein, oder?


----------

