# für HTML ImageIcon oder .img src=. ?



## richardkrieger (14. Jul 2008)

Hallo,

bastle gerade an einem E-Mail Tool zum versenden von E-Mails. Plain text Variante geht. Jetzt möchte ich aber HTML-Mails schreiben können, d.h. HTML Editor.
Textformatierungen usw. geht in Ordnung. Habe ein Problem mit Bildern:
ein Bild soll im Text über die rechte Maustaste auswählbar sein, dann Kontextmenü, wo ich HTML-Parameter des Bildes setzen kann(width, heigth, align usw.)
Variante 1: ich lade das Bild als ImageIcon. Dann kann ich darauf MouseListener setzen, alles wunderbar. Dann ist es aber kein HTML im HTML-Quellcode meiner JEditorPane. Man kann natürlich beim speichern oder absenden parsen und die Tags ersetzen, dann beim "Datei"->"Öffnen" wieder parsen, damit Bilder nachbearbeitet werden können.... Bisschen umständlich 
Variante 2: ich setze alles gleich im richtigen HTML um, also 
	

	
	
		
		

		
			





. Kein Parsen, alles gleich HTML. ABER: ich kein kein MouseListener auf das Bild setzen.

Methode um das Bild zu setzen, Variante 2:

```
private void setBild(){
		String bilddatei="\"file:3d.png\"";
		textbild=bildstart+bilddatei+bildende;
		try{
			ekit.insertHTML((HTMLDocument)epane.getDocument(), epane.getCaretPosition(), textbild, 0, 0, HTML.Tag.IMG);
			}catch(IOException ioe){
				ioe.printStackTrace();
			}catch(BadLocationException ble){
				ble.printStackTrace();
			}
	}
```

Habe ich was übersehen? Variante 2 wäre mir lieber, aber: wie komme ich an das Bild ran um einen MouseListener zu setzen?


----------



## Illuvatar (14. Jul 2008)

Ich denk mal nicht, dass das Bild von einer java.awt.Component repräsentiert wird, also wirst du da nicht direkt einen MouseListener adden können. Ich würde eher direkt zur JEditorPane einen hinzufügen - oder du schaffst es dich irgendwie da in der JEditorPane einzuklinken, wo das Standard-kontextmenü generiert würde. Letzteres wäre schöner - zumal du in jedem Fall das Standard-kontextmenü irgendwie wegkriegen musst.
Auf jeden Fall kannst du dann über JTextComponent#viewToModel rauskriegen wohin geklickt wurde, und wenn an der Stelle ein Bild ist dann das Kontextmenü anzeigen.


----------



## richardkrieger (22. Jul 2008)

JTextComponent#viewToModel liefert leider position im sichtbaren Text, ohne den darunterliegenden HTML zu berücksichtigen. Methodenname hat mich aber veranlasst nach "Model" zu suchen. Wenn ich es richtig verstanden habe, habe ich mit JEditorPane#setContent("teht/html") ein Model gesetzt.

StylePad-Beispiel macht nur Text-Formatierungen.

habe nach wie vor keine Ahnung, wie ich mit mausklick im Vordergrund auf <img src...> im Hintergrund komme.


----------

