2012-02-29 30 views
2

我正在使用JEditorPane顯示正在從套接字讀取的文本。我創建JEditorPane中,獲得其文檔,並添加文本,因爲它涉及使用JEditorPane中的換行

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

可正常工作,除了當它遇到「\ n」(被用於換行字符),似乎忽略它(即不打印任何東西),並且所有內容都在一行中出現。我已經四處尋找解決方案,但我似乎無法找到任何工作(試圖用<br>取代'\ n',沒有幫助,它只是打印出<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. 嘗試打印輸入,並確保它與「\ n」

你也可以使用,

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

你是如何從套接字的InputStream讀?使用BufferedReader.readLine()? 如果是這樣,讀取的行不會包含'\ n';你需要手動添加它。 – 2012-02-29 17:36:50

+0

facepalm!我在我的一個方法中手動添加了'\ n',並且在另一個方法中忘記了它。這是第二個真正被召喚的人。哎呀! – James 2012-02-29 17:58:16