Mi spiego meglio..
Dunque, ho necessita di salvare in Txt, oppure in PDF..quindi ho scritto questo
codice:
else if(cmd.equals("Apri..")) {
int value = fc.showOpenDialog(frametext);
// Verifico sia stato digitato Ok
if(value==JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
int i = file.getName().lastIndexOf(".");
String ext = file.getName().substring(i);
ed.setStato(true);
// Leggo l'estensione
if(ext.equals(".rtf") || ext.equals(".RTF")) {
openRTF();
}
else {
open();
}
}
}
Il fatto, come si evince.. è che quando chiamo il metodo openRTF(), oppure open()..non ho l'oggetto file appena ottenuto! (stavo infatti pensando di mettere la variabile File fuori da questo blocco, in modo da renderla visibile), quindi ho pensato di richiamare una seconda volta getSelectedFile(). Può dipendere da questa cosa?
E, una volta aperto e cliccato su "salva" controllo che il documento sia già stato salvato in precedenza..
all'interno di saveRTF() c'è:
codice:
private void saveRTF() {
StyledDocument doc = ed.getPane().getStyledDocument();
RTFEditorKit kit = new RTFEditorKit();
try {
File file = new File(tab.getTitleAt(index));
FileOutputStream fin = new FileOutputStream(file);
kit.write(fin,doc,0,ed.getPane().getText().length());
tab.setForegroundAt(index,Color.BLACK);
} catch(Exception e) {}
}
è corretto in questo modo?
PS: Il problema si presenta con entrambi i salvataggi (sia rtf sia txt).
Grazie!!