下面列出了javax.swing.text.html.HTMLDocument#getElement ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static void scrollToId(JEditorPane editor, String id) {
Document d = editor.getDocument();
if (d instanceof HTMLDocument) {
HTMLDocument doc = (HTMLDocument) d;
Element element = doc.getElement(id);
try {
int pos = element.getStartOffset();
// Java 9: Rectangle r = editor.modelToView2D(pos).getBounds();
Rectangle r = editor.modelToView(pos);
if (r != null) {
Rectangle vis = editor.getVisibleRect();
r.height = vis.height;
editor.scrollRectToVisible(r);
editor.setCaretPosition(pos);
}
} catch (BadLocationException ex) {
UIManager.getLookAndFeel().provideErrorFeedback(editor);
}
}
}
public static Element findElement(HTMLDocument doc
, Attribute ab, String value){
return doc.getElement(doc.getDefaultRootElement(), ab, value);
/*ElementIterator it = new ElementIterator(doc);
Element e;
while ((e = it.next()) != null)
if (hasAttribute(e,ab,value))return e;
return null;*/
}
@Override public void actionPerformed(ActionEvent e) {
textArea.append(String.format("----%n%s%n", getValue(Action.NAME)));
String id = field.getText().trim();
HTMLDocument doc = (HTMLDocument) editorPane.getDocument();
Element element = doc.getElement(id);
if (Objects.nonNull(element)) {
textArea.append(String.format("found: %s%n", element));
editorPane.requestFocusInWindow();
editorPane.select(element.getStartOffset(), element.getEndOffset());
}
}