나는 JEditorPane
을 가지고 있습니다. 나는 간단한 편집자가 필요하다. 로드 및 사용자 지정 (두) 태그를 포함하는 HTML 수정 문제를 해결했습니다 (my older post 참조). 그것은 문서를 적절하게 표시하고 심지어 지금도 편집 할 수 있습니다. 나는 문자를 쓸 수 있으며, 문자 나 내 사용자 정의 요소를 삭제할 수 있습니다. 나는 전투에서 승리했지만 전쟁에서 승리하지 못했습니다. 다음 단계는 유감스럽게도 너무 problematical이다. 내 맞춤 태그를 삽입 할 수 없습니다. 그것은 제대로 worktsJEditorPane, HTMLEditorKit - 커스텀 태그를 삽입하는 커스텀 액션
import my.own.HTMLEditorKit; //extends standard HTMLEditorKit
import my.own.HTMLDocument; //extends standard HTMLDocument
class InsertElementAction extends StyledTextAction {
private static final long serialVersionUID = 1L;
public InsertElementAction(String actionName) {
super(actionName);
}
@Override
public void actionPerformed(ActionEvent e) {
JEditorPane editor = getEditor(e);
if (editor == null)
return;
HTMLDocument doc = (HTMLDocument) editor.getDocument();
HTMLEditorKit ekit = (HTMLEditorKit) editor.getEditorKit();
int offset = editor.getSelectionStart();
try {
ekit.insertHTML(doc, offset, "<span>ahoj</span>", 0, 0, HTML.Tag.SPAN);
Element ele = doc.getRootElements()[0];
ele = ele.getElement(1).getElement(0);
doc.setInnerHTML(ele, "<bar medium=\"#DEFAULT\" type=\"packaged\" source=\"identifier\" />");
}
catch (BadLocationException ble) {
throw new Error(ble);
}
catch (IOException ioe) {
throw new Error(ioe);
}
}
}
:
나는 사용자 지정 작업이 있습니다. span
요소를 삽입 할 수 있습니다. 하지만 이런 방식으로 비표준 태그를 삽입 할 수는 없습니다. code
, span
등을 삽입 할 수는 있지만 내 태그는 삽입 할 수 없습니다. 내 태그를 들어 나는이 사용하도록 강요 해요 : 두 가지 중요한 문제
- 사용자 정의 태그 (여기서 x)는 비 whispace 문자
- 으로 경계해야 있습니다
ekit.insertHTML(doc, offset, "x<bar medium=\"#DEFAULT\" type=\"packaged\" source=\"identifier\" />x", 0, 0, null);
를 현재 요소의 예상대로 내가
<p>paragraph</p>
에span
요소를 삽입 할 때 몸이
을 분할, 나는 <p>par<span>ahoj</span>agraph</p>
를 얻을. 알 수없는 태그 However가 항상 body
요소의 하위 요소로 삽입되고 결과 (예 : 알 수없는 태그 x
)가 <p>par</p><x>ahoj</x><p>agraph</p>
입니다.
작업이 완전히 소모되었습니다. 나는이 비교적 간단한 작업을 몇 주 동안 믿고 있습니다. 나는 벌써 낭비하고있다. 삽입이 작동하지 않을 경우, 나는 모두를 스크랩 할 수 있습니다 ...
어떤 객체 유형이'AppErrors.EDITORKIT_ACTIONFAILURE'입니까? 'String'의 경우, Throwable (AppErrors.EDITORKIT_ACTIONFAILURE, ioe); –
상관 없어요. 좀 더 종합적으로 업데이트 된 게시물을 보았습니다. –
나는 이해하고 있는지 잘 모르겠다. HTMLEditorKit는 HTML 렌더링에 사용됩니다. HTML 태그가 아닌 태그로 피드하는 경우 어떻게해야할까요? –