Я создаю редактор, используя JEditorPane
, HTMLDocument
и HTMLEditorKit
. У меня есть панель инструментов, которая имеет различные компоненты для изменения атрибутов стиля редактора. Один из них - JComboBox
, чтобы изменить атрибут ZOOM_FACTOR
. Код ниже - это код, который выполняется при изменении значения JComboBox
.JEditorPane HTMLDocument добавляет p-подразумеваемый в HTML без необходимости, когда setCharacterAttributes называется
final SimpleAttributeSet attrs = new SimpleAttributeSet();
zoomCombo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s = (String) zoomCombo.getSelectedItem();
s = s.substring(1, s.length());
double scale = new Double(s).doubleValue()/100;
editorPane.getDocument().putProperty("ZOOM_FACTOR", new Double(scale));
try {
StyledDocument doc = (StyledDocument) editorPane.getDocument();
doc.setCharacterAttributes(0, 1, attrs, true);
doc.insertString(0, "", null); // refresh
} catch (Exception ex) {
logger.error("Hata", ex);
}
}
});
doc.setCharacterAttributes(0, 1, attrs, true);
является линия, где корень моей проблемы начинается. После выполнения этой строки кода <p-implied>
добавляется в <head></head>
часть HTML text
в JEditorPane.getText
. И после этого, если произошел какой-то определенный случай событий, мой HTML text
будет поврежден. Есть ли способ, как не создавать <p-implied>
? Если это не так, что может быть лучшим обходным решением этой проблемы?
PS: В системе JDK Bug есть что-то старое сообщение here. Он сообщается по другой причине, но также показано, что тот же <p-implied>
добавляется к <head></head>
. Я знаю, что проблема, указанная в этой ссылке, использует JTextPane
(подкласс JEditorPane
) и метод setCharacterAttributes
в классе JTextPane
, но этот метод также вызывает тот же метод setCharacterAttributes
, который я использовал внутри себя.
Большое спасибо, он работал с небольшим изменением, я изменил строку после этой строки, чтобы обновить компонент. Есть ли источник, чтобы лучше понять HtmlDocument и JEditorPane. Документация даже не достаточно близко. – halil
Я применил инструмент http://java-sl.com/JEditorPaneStructureTool.html, чтобы исследовать структуру и структуру структуры документов – StanislavL