Guten Abend,
kommen wir gleich zur Sache. Ich habe angefangen, einen kleinen Texteditor zu schreiben, bei dem es auch möglich sein soll, Bilder einzufügen.
Anfangs habe ich es mit einem JEditorPane probiert und mich mit HTML herumgeschlagen, was aber irgendwie nicht funktioniert hat.
Dann bin ich aber auf das JTextPane mit der Methode insertIcon(Icon) gestoßen, was auch gut funktioniert. Momentan schaut das so aus:
Will ich den Inhalt des JTextPane abspeichern, wird er einem String in der Klasse Speichern übergeben und ein Dialog geöffnet. (save ist ein Objekt der Klasse Speichern)
In diesem wird dann per Klick auf "Speichern" die Methode schreiben(File) aufgerufen.
Und hier irgendwo liegt der Hund begraben... wenn ich den Inhalt der JTextPane dem String übergebe, kommt statt dem Bild ein Leerzeichen, was sich dann auch beim Öffnen bemerkbar macht. Das heißt, es gehen jegliche Informationen wie zB der Pfad verloren.
Meine Frage lautet jetzt:
Gibt es eine andere Möglichkeit (außer HTML), mit der ich dieses Problem lösen kann und wenn ja welche?
kommen wir gleich zur Sache. Ich habe angefangen, einen kleinen Texteditor zu schreiben, bei dem es auch möglich sein soll, Bilder einzufügen.
Anfangs habe ich es mit einem JEditorPane probiert und mich mit HTML herumgeschlagen, was aber irgendwie nicht funktioniert hat.
Dann bin ich aber auf das JTextPane mit der Methode insertIcon(Icon) gestoßen, was auch gut funktioniert. Momentan schaut das so aus:
Code:
String bildURL = open.bildsuche();
ImageIcon icon1 = new ImageIcon(bildURL);
textfeld.insertIcon((Icon)icon1);
Will ich den Inhalt des JTextPane abspeichern, wird er einem String in der Klasse Speichern übergeben und ein Dialog geöffnet. (save ist ein Objekt der Klasse Speichern)
Code:
save.setText(textfeld.getText());
save.setVisible(true);
In diesem wird dann per Klick auf "Speichern" die Methode schreiben(File) aufgerufen.
Code:
private void schreiben(File datei){
byte b;
try{
FileOutputStream geschreibsel = new FileOutputStream(datei);
for(int i = 0; i < text.length(); i++){
b = (byte)text.charAt(i);
geschreibsel.write(b);
}
geschreibsel.close();
}
catch(IOException e){
System.out.println(e);
}
}
Meine Frage lautet jetzt:
Gibt es eine andere Möglichkeit (außer HTML), mit der ich dieses Problem lösen kann und wenn ja welche?