我正在开发一个应用程序,当我从列表中选择一个值(文件)时,它应该在不同形式的jTextPane中打开。我使用两个面板,一个是主面板,我的列表显示,一个是ExcelSheet,当我点击一个列表值,然后主面板关闭,新的形式ExcelSheet显示,但不是jTextPane中的doc文件的内容。
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();}
使用Action
封装更新文本窗格以显示给定文件的代码。您可以从添加到JList
的ListSelectionListener
调用该操作。您还可以在菜单项或工具栏按钮中使用该操作,如下所示。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
}
}