|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
[JAVA] Leggere testo formattato
Ciao a tutti!!!
Ho bisogno di mettere in un componente Swing (JTextPane) un file RTF. Nel momento in cui il mio programma esegue questa istruzione: Codice:
txtPane.setPage("file1.rtf");
Non riesco a capire perché fa così, io ho letto che la JTextPane supporta file formattati sia in HTML che in RTF. Dove sto sbagliando? Grazie. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Il problema (per il momento) non è il formato del file che tenti di caricare ma la stringa parametro ("file1.rtf") che passi al metodo .setPage() di JTextPane.
[vedi javadoc: JTextPane] Nota che questo metodo, in JTextPane viene ereditato da JEditorPane che definisce in overloading due metodi .setPage(): 1) il primo prende come parametro un oggetto URL 2) il secondo prende come parametro un oggetto String Tu stai passando una String quindi stai tentando di invocare il secondo metodo. Il fatto è che devi passare una String che rappresenta un URL non un path. L'eccezione che viene lanciata te lo dice chiaramente: "java.net.MalformedURLException: no protocol: file1.rtf". Ad essere "malformed" (per il momento) non è il formato del file ma la String che dovrebbe contenere l'URL. In particolare, vado a senso, quando ti dice "no protocol: file1.rtf" significa che appunto parserizzando la stringa ricevuta ("file1.rtf") non riesce a trovare il protocollo espresso nell'URL. Comunque aspettati "qualche complicazione" anche per la visualizzazione del tuo file dato che al suo interno non è un semplice file di testo ma un file in formato RTF. Se riesci a caricarlo nel JTextPane potrai vedere se il risultato è quello che ti aspettavi o meno. Per curiosità: il file lo devi mostrare solo a fini di visualizzazione oppure anche per editing? Concludo con questi link dove puoi documentarti meglio: Javadoc The Java Tutorials: Using Text Components
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
A me serve solo che quel file venga visualizzato. Visto che JTextPane richiede un URL e non un path, come faccio a fargli leggere quel file mantenendo gli stili di formattazione? Ho visto che forse può servirmi una classe StyledDocument ma non ho capito bene come funziona.
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
L'unica è che ti documenti tramite le risorse della Sun se nessuno ti suggerisce qualcosa grazie alla sua esperienza. Quello che ti ho scritto sopra l'ho ricavato "al volo" dopo aver letto il tuo post e aver fatto una piccola ricerca. Ciao @EDIT: ho trovato questo link che ti può essere di aiuto. Parla anche di una classe già presente nel JDK, il nome è tutto un programma: RTFEditorKit. Credo non dovresti avere problemi ora
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 22-08-2008 alle 09:53. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Grazie mille ci darò un'occhiata.
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2794
|
Prova a passargli come parametro il percorso scritto così: "file:///C:/Percorso/eccetera"
Altrimenti per generare l'url corretta mi pare che puoi usare la classe URI e URL. PS: sempre che poi JTextPane possa contenere il testo formattato... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:59.




















