2013-05-01 76 views
0

我试图将doc文件的内容显示到jTextPane中。但它只显示文档的最后一行,而在控制台上则显示整个文档。 我使用Apache POI库。在jTextPane中显示doc文件的内容

File file = null; 
    WordExtractor extractor = null ; 
    try { 

     file = new File("C:\\Users\\Siddique Ansari\\Documents\\CV Parser\\Siddique_Resume.doc"); 
     FileInputStream fis=new FileInputStream(file.getAbsolutePath()); 
     HWPFDocument document=new HWPFDocument(fis); 
     extractor = new WordExtractor(document); 
     String [] fileData = extractor.getParagraphText(); 
     for(int i=0;i<fileData.length;i++){ 
      System.out.println(fileData[i]); 
      jTextPane1.setText(fileData[i]); 

     } 
    } 
    catch(Exception exep){} 

回答

1

jTextPane1.setText(fileData[i]);将每次覆盖当前值。

相反,追加到底层文档:

Document doc = jTextPane1.getDocument(); 

// ... in your loop: 
doc.insertString(doc.getLength(), fileData[i], null); 
1

相反的:

for(int i=0;i<fileData.length;i++){ 
    System.out.println(fileData[i]); 
    jTextPane1.setText(fileData[i]); 
} 

尝试

StringBuilder content = new StringBuilder(); 
for(int i=0; i < fileData.length; i++){ 
    System.out.println(fileData[i]); 
    content.append(fileData[i]).append("\n"); 
    jTextPane1.setText(content.toString()); 
} 

此外,

catch(Exception exep){} 

从来就不是一个好主意。至少写:

catch(Exception exep) { exep.printStackTrace(); } 

,所以你知道这是怎么回事时excecption发生的时间。