Как получить доступ к jtextPane в другой форме?

Я разрабатываю приложение, в котором при выборе значения (файла) из списка оно должно быть открыто в jTextPane другой формы. Я использую две панели, одна из которых является основной панелью, где отображается мой список, а другая - ExcelSheet. Когда я нажимаю на значение списка, основная панель закрывается и отображается новая форма ExcelSheet, но не содержимое файла 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 ответ

Решение

Использование Action инкапсулировать код, который обновляет текстовую панель, чтобы отобразить данный файл. Вы можете вызвать действие из ListSelectionListener добавлен в ваш JList, Вы также можете использовать действие в пункте меню или на панели инструментов, как показано здесь. 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
    }
}
Другие вопросы по тегам