Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Ξέρει κανένας πως μπορώ να δημιουργήσω στη java ένα HTML Document κατευθείαν από String χωρίς να χρειαστώ αρχείο, που να μπορώ να το χρησιμοποιήσω στην setDocument() ενός JEditorPane ?

Δημοσ.

Ένας τρόπος είναι να δημιουργήσεις αρχικά ένα αντικείμενο της κλάσης HTMLDocument (που κάνει implement το interface Document):

 

Document Doc = new HTMLDocument();

 

Στη συνέχεια θα χρησιμοποιήσεις τη μέθοδο insertString(int offset,String s,AttributeSet a); όπου θα βάλεις το String που έχεις. Στη θέση του AttributeSet μπορείς να βάλεις την κλάση SimpleAttributeSet (κάνει implement to AttributeSet). Κοίταξε το αν σε βολεύει αυτή η λύση, εκτός και αν μπορείς να παρακάμψεις εντελώς τη χρήση του Document interface, οπότε απλά μπορείς να καλέσεις τη μέθοδο setText του JEditorPane (η πιο εύκολη λύση).

Δημοσ.

Ευχαριστώ nexuss, το SetText() μου το αφήνει άδειο και το insertString μου δείχνει το κείμενο χωρίς να εμφανίζεται με τη μορφοποίηση, ποιο είναι το επόμενο βήμα για να το διορθώσω ?

Δημοσ.

Χμμμ.... Δοκίμασε για αρχή να χρησιμοποιήσεις μόνο τον constructor του JEditorPane

JEditorPane(String type, String text)

 

χωρίς να καλέσεις κάποια από τις μεθόδους setText και insertString. Στο type θα βάλεις "text/html" και στο text το html String που έχεις.

 

Επίσης σιγουρέψου ότι έχεις ανοίξει και κλείσει σωστά τα html tags (μήπως μένει κάποιο ανοιχτό και χαλάει όλος ο html κώδικας;)) καθώς και ότι ο κώδικάς σου δε στηρίζεται καθόλου στη Javascript (μόνο html διαβάζει ο JEditorPane, άρα αν χρησιμοποιείς Javascript για να δημιουργήσεις το περιεχόμενο, δε θα δουλέψει). Κοίταξε για αρχή αυτές τις περιπτώσεις πριν πάμε σε κάτι άλλο.

Δημοσ.

Επίσης σιγουρέψου ότι έχεις ανοίξει και κλείσει σωστά τα html tags (μήπως μένει κάποιο ανοιχτό και χαλάει όλος ο html κώδικας;)) καθώς και ότι ο κώδικάς σου δε στηρίζεται καθόλου στη Javascript (μόνο html διαβάζει ο JEditorPane, άρα αν χρησιμοποιείς Javascript για να δημιουργήσεις το περιεχόμενο, δε θα δουλέψει). Κοίταξε για αρχή αυτές τις περιπτώσεις πριν πάμε σε κάτι άλλο.

 

 

Bingo !!! O κώδικας προέρχεται από xsl transformation και τις περισσότερες φορές περιέχει javascript, αυτό λοιπόν είναι το πρόβλημά μου ε ?

όταν όμως το string το σώσω σε αρχείο και κάνω setPage προς αυτό το αρχείο ο ΕditorPane το δείχνει μια χαρά.

Δημοσ.

Σε περίπτωση που δεν καταλαβαίνει τι είναι αυτό που του βάζεις, το type το ορίζει σε "text/plain" και ίσως δεν μπορεί να διαβάσει σωστά το html String σου. Για αυτό το ορίζουμε από την αρχή σε "text/html" (το οποίο μπορείς να κάνεις και με την μέθοδο setContentType) για να ξέρει πώς να διαβάσει αυτό που του βάζουμε. Κοίταξες αν δουλεύει με τον constructor JEditorPane(String type, String text);

Δημοσ.

Ναι κάνει ό,τι και το insertString, έχω πειστεί πως φταίει η javascript ή ίσως το tag Meta που περιέχουν τα αρχεία, μάλλον δεν πρόκειται να λυθεί κάτι τέτοιο. Θα αναγκαστώ να διαβάζω και να γράφω συνέχεια αρχείο. Ευχαριστώ πάντως.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...