2013-05-08 35 views
2

我正在開發一個應用程序,當我從列表中選擇一個值(文件)時,它應該以不同形式的jTextPane打開。我使用了兩個面板,一個是mainpanel,我的列表顯示,另一個是ExcelSheet,當我點擊列表值時,mainpanel關閉,新窗體ExcelSheet顯示,但不顯示jTextPane中doc文件的內容。如何以不同的形式訪問jtextPane?

XWPFWordExtractor extractor=null; 
    File file=null; 
    String str=(String) list.getSelectedValue(); 
    mainPanel.setVisible(false); 
    new ExcelSheet().setVisible(true); 
    ExcelSheet obj=new ExcelSheet(); 
     try { 
      file=new File("C:\\Users\\Siddique Ansari\\Documents\\CV Parser\\"+str); 


     FileInputStream fis=new FileInputStream(file.getAbsolutePath()); 
     XWPFDocument document=new XWPFDocument(fis); 
     extractor = new XWPFWordExtractor(document); 
     String fileData = extractor.getText(); 
     Document doc = obj.jTextPane1.getDocument();  

      System.out.println(fileData); 
      doc.insertString(doc.getLength(), fileData, null); 

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

它是一個對象,你喜歡的地方 – MoienGK 2013-05-08 12:50:22

+0

我如何可以通過它,你可以通過它的任何? – 2013-05-08 12:52:09

+2

請參閱[使用多個JFrames,好/壞實踐?](http://stackoverflow.com/a/9554657/418556) – 2013-05-08 12:54:49

回答

3

使用Action來封裝更新文本窗格以顯示給定文件的代碼。您可以調用添加到您的JList中的操作。您也可以使用菜單項或工具欄按鈕中的操作,如here所示。 ImageApp是一個相關的例子。

例如,你的行動的每個實例都需要目標文本窗格和文件:

class FileAction extends AbstractAction { 

    JTextPane target; 
    File file; 

    public FileAction(JTextPane target, File file) { 
     this.target = target; 
     this.file = file; 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     // render file in target 
    } 
}