2012-02-29 6 views
2

В настоящее время я использую JEditorPane для отображения текста, который считывается из Socket. Я создать JEditorPane, получить свой документ и добавить текст, как это происходит с помощьюНовые строки в JEditorPane

document.insertString(document.getEndPosition().getOffset(), string, null); 

Это работает, как ожидалось, за исключением того, что, когда он сталкивается с «\ п» (Символ используется для перевода строки), кажется, игнорировать его (т. е. ничего не печатать), и все выходит на одну строку. Я искал решение, но я не могу найти что-либо, что работает (пробовал заменить «\ n» на <br>, не помог, он просто распечатал <br>.

ответ

1

Он работает так, как вы ожидали .

Вот код.

doc.insertString(doc.getEndPosition().getOffset(), "test\n", null); 
doc.insertString(doc.getEndPosition().getOffset(), "test\n", null); 
doc.insertString(doc.getEndPosition().getOffset(), "test\n", null); 
doc.insertString(doc.getEndPosition().getOffset(), "test\n", null); 

полный код.

jScrollPane1 = new javax.swing.JScrollPane(); 
    jEditorPane1 = new javax.swing.JEditorPane(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jScrollPane1.setViewportView(jEditorPane1); 

    getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER); 

    pack(); 
  1. Проверить независимо от того, установлено ли какое-либо другое свойство на панели редактора.
  2. Какой набор редакторов вы используете?
  3. попробуйте напечатать вход и убедитесь, что она поставляется с «\ п»

Вы также можете использовать,

doc.insertString(doc.getLength(), "test\n", null); 
+0

Как вы читаете из гнезда InputStream? используя BufferedReader.readLine()? Если это так, строка чтения не будет содержать «\ n»; вам нужно добавить его вручную. –

+0

лицоpalm! Я добавил «\ n» вручную в один из моих методов и забыл его в другом. и это был второй, который действительно вызывался. К сожалению! – James