я следующая проблема:Использование в Java HTML осознает компонент
я отображать HTML-документ с JTextPane.
В моем HTML-тексте есть ­
(shy at w3.org), чтобы сделать soft-hyphenation. Моя проблема в том, что перенос не переносится. Есть ли какой-то флаг, который я не знаю, чтобы использовать эту опцию?
После Programm покажет проблему:
package com.dvelop.ckue.swing;
import javax.swing.*;
import javax.swing.text.html.HTMLEditorKit;
import java.awt.*;
public class SwingGui extends JFrame {
public static void main(String[] args) {
SwingGui sg = new SwingGui();
sg.setSize(new Dimension(200, 800));
sg.setPreferredSize(new Dimension(200, 800));
sg.pack();
sg.setVisible(true);
sg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private SwingGui() {
super();
setLayout(new FlowLayout());
// No "-" appears, but a linebreak
add(createField("<html>longlong<br>longlong<br>longlonglonglonglonglonglonglonglonglongWord"));
// No linebreak, but the hyphenationsymbol
add(createField("<html>longlong­longlong­longlonglonglonglonglonglonglonglonglongWord"));
// Linebreak, but not where expected and no symbol
add(createField("<html>longlong​longlong​longlonglonglonglonglonglonglonglonglongWord"));
// No linebreak, no symbol
add(createField("<html>longlonglonglonglonglonglonglonglonglonglonglonglonglongWord"));
}
private JTextPane createField(String content) {
JTextPane field1 = new JTextPane();
field1.setPreferredSize(new Dimension(100, 200));
field1.setAutoscrolls(true);
field1.setEditorKit(new HTMLEditorKit());
field1.setText(content);
return field1;
}
}
Мой ожидаемое поведение в том, что мой текст будет разбит на следующую строку:
longlong-
longlong-
longlonglonglongWord
Как кажется на первый блок, но с знак переноса.
EDIT: Он будет работать в большинстве браузеров, но здесь я не использую веб-браузер.
EDIT 2: Я использую JTextPane, я не знаю, если Java будет использовать некоторые installes HTML рендеринга-двигателя внутри.
С вашим ответом я бы смог сделать то, что хотел. Но я изменил что-то в моем buildprocess, поэтому мне не нужно менять перенос. (Фактически я удалил все '') –