2016-10-29 5 views
0

Я пытаюсь создать текстовый редактор на Java, но у меня есть несколько проблем.Сохранить содержимое JTextPane (изображение, таблица) в файле

Я могу добавить изображение в JTextPane с insertIcon(), но когда я его сохраняю, файл пуст, я пытаюсь сохранить его как .doc. То же самое, когда я пытаюсь изменить шрифт, он работает в JTextPane, но когда я сохраняю его шрифт по умолчанию, а не шрифт/размер, который у меня был.

Это мой SAVEFILE метод:

 try { 
     BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); 
     writer.write(text.getText()); 
     writer.close(); 
     saved = true; 
    } catch (IOException err) { 
     err.printStackTrace(); 
    } 
} 

Заранее спасибо: P

EDIT:

Я вставив изображение в моем JTextPane так:

JFileChooser open = new JFileChooser(); 
      open.showOpenDialog(null); 
      File file = open.getSelectedFile(); 
      Icon image = new ImageIcon(String.valueOf(file)); 
      text.insertIcon(image); 

Я сохраняю JTextPane в файл, используя метод saveFile сверху. Изображение добавляется в JTextPane, все в порядке. Но когда я открываю файл, изображение отсутствует.

+1

1) Для лучшей помощи в ближайшее время отправьте сообщение [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). 2) Один из способов получить изображение (-ы) для примера - это горячая ссылка на изображения, видимые в [этом Q & A] (http://stackoverflow.com/q/19209650/418556). 3) Попробуйте ['JTextComponent.write (Writer)'] (http://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#write-java.io.Writer-) –

+0

Я пробовал метод, но он не будет работать. –

+0

Почему вы ожидаете, что изображение будет сохранено, когда все, что вы делаете, это сохранение текста? Каким образом изображение будет волшебным образом написано в этой ситуации? –

ответ

0

Вы можете попытаться смыть писателя, прежде чем закрыть его. Добавьте строку writer.flush(). Это приведет к сбросу основного выходного потока. По сути здесь начинается запись в файл.

Редактировать: я проверил код и записывал его в файл. Ваша проблема в том, что шрифт не такой, какой он был до его сохранения?

+0

Да, и когда я вставляю изображение, оно не сохраняется в файле. –

+0

Изображение не сохраняется в файле? Вы только пишете текст. Чтобы сохранить весь компонент, вам нужно будет сделать то, что предложил Эндрю. Это сохраняет текущее состояние компонента. И не только текст. –

+0

Я пробовал, что он сказал, что он не работает, может быть, я не сделал это правильно? text.write (автор); –

0

Вам необходимо использовать EditorKit. Завтра я напишу более точный ответ.

Смежные вопросы