xlomo Δημοσ. 5 Νοεμβρίου 2011 Δημοσ. 5 Νοεμβρίου 2011 Ξέρει κανένας πως μπορώ να δημιουργήσω στη java ένα HTML Document κατευθείαν από String χωρίς να χρειαστώ αρχείο, που να μπορώ να το χρησιμοποιήσω στην setDocument() ενός JEditorPane ?
nexuss Δημοσ. 5 Νοεμβρίου 2011 Δημοσ. 5 Νοεμβρίου 2011 Ένας τρόπος είναι να δημιουργήσεις αρχικά ένα αντικείμενο της κλάσης 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 (η πιο εύκολη λύση).
xlomo Δημοσ. 5 Νοεμβρίου 2011 Μέλος Δημοσ. 5 Νοεμβρίου 2011 Ευχαριστώ nexuss, το SetText() μου το αφήνει άδειο και το insertString μου δείχνει το κείμενο χωρίς να εμφανίζεται με τη μορφοποίηση, ποιο είναι το επόμενο βήμα για να το διορθώσω ?
nexuss Δημοσ. 5 Νοεμβρίου 2011 Δημοσ. 5 Νοεμβρίου 2011 Χμμμ.... Δοκίμασε για αρχή να χρησιμοποιήσεις μόνο τον constructor του JEditorPane JEditorPane(String type, String text) χωρίς να καλέσεις κάποια από τις μεθόδους setText και insertString. Στο type θα βάλεις "text/html" και στο text το html String που έχεις. Επίσης σιγουρέψου ότι έχεις ανοίξει και κλείσει σωστά τα html tags (μήπως μένει κάποιο ανοιχτό και χαλάει όλος ο html κώδικας) καθώς και ότι ο κώδικάς σου δε στηρίζεται καθόλου στη Javascript (μόνο html διαβάζει ο JEditorPane, άρα αν χρησιμοποιείς Javascript για να δημιουργήσεις το περιεχόμενο, δε θα δουλέψει). Κοίταξε για αρχή αυτές τις περιπτώσεις πριν πάμε σε κάτι άλλο.
xlomo Δημοσ. 5 Νοεμβρίου 2011 Μέλος Δημοσ. 5 Νοεμβρίου 2011 Επίσης σιγουρέψου ότι έχεις ανοίξει και κλείσει σωστά τα html tags (μήπως μένει κάποιο ανοιχτό και χαλάει όλος ο html κώδικας) καθώς και ότι ο κώδικάς σου δε στηρίζεται καθόλου στη Javascript (μόνο html διαβάζει ο JEditorPane, άρα αν χρησιμοποιείς Javascript για να δημιουργήσεις το περιεχόμενο, δε θα δουλέψει). Κοίταξε για αρχή αυτές τις περιπτώσεις πριν πάμε σε κάτι άλλο. Bingo !!! O κώδικας προέρχεται από xsl transformation και τις περισσότερες φορές περιέχει javascript, αυτό λοιπόν είναι το πρόβλημά μου ε ? όταν όμως το string το σώσω σε αρχείο και κάνω setPage προς αυτό το αρχείο ο ΕditorPane το δείχνει μια χαρά.
nexuss Δημοσ. 5 Νοεμβρίου 2011 Δημοσ. 5 Νοεμβρίου 2011 Σε περίπτωση που δεν καταλαβαίνει τι είναι αυτό που του βάζεις, το type το ορίζει σε "text/plain" και ίσως δεν μπορεί να διαβάσει σωστά το html String σου. Για αυτό το ορίζουμε από την αρχή σε "text/html" (το οποίο μπορείς να κάνεις και με την μέθοδο setContentType) για να ξέρει πώς να διαβάσει αυτό που του βάζουμε. Κοίταξες αν δουλεύει με τον constructor JEditorPane(String type, String text);
xlomo Δημοσ. 5 Νοεμβρίου 2011 Μέλος Δημοσ. 5 Νοεμβρίου 2011 Ναι κάνει ό,τι και το insertString, έχω πειστεί πως φταίει η javascript ή ίσως το tag Meta που περιέχουν τα αρχεία, μάλλον δεν πρόκειται να λυθεί κάτι τέτοιο. Θα αναγκαστώ να διαβάζω και να γράφω συνέχεια αρχείο. Ευχαριστώ πάντως.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα