tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
4018
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    merlinonline merlinonline ist offline Mitglied
    Registriert seit
    Aug 2007
    Beiträge
    14
    Hi,
    ich zeige mit Hilfe eines JTextPanes HTML Seiten an. Leider habe ich da ein Problem.

    Ich lese eine Datei mit einem InputStream ein, bearbeite den daraus resultierenden String und möchte diesen gerne mit setText(String..) anzeigen lassen.

    Dies funktioniert auch, sofern ich nur den body Bereich der HTML - Page übergebe. Sobald ich aber auch den HTML Head mit übergebe an die setText Methode, so wird gar nichts angezeigt. Einfach eine leere Seite.

    Hat jemand eine Idee woran das liegen könnte?

    oder Alternativ eine Idee, wie ich in einem JTextPane Text bearbeiten kann? Also vom Programm aus?
    Sinn ist halt, dass bestimmte dinge in der HTML Datei ersetzt werden sollen und diese Datei dann angezeigt wird, damit ich diese drucken kann.


    einlesen einer HTML datei:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    StringBuffer ret = new StringBuffer();
    DataInputStream dis = null;
    BufferedReader br = null;
     
    dis = new DataInputStream(quelle.openStream());
    br = new BufferedReader(new InputStreamReader(dis));
                
    String nextLine;
    while((nextLine = br.readLine()) != null){
        ret.append(nextLine + "\n");


    anschließend String bearbeiten, hier wohl unrelavant, es bleibt definitv eine HTML Syntax konformer String

    und Zuweisung zu einem JTextPane:
    Code :
    1
    2
    3
    4
    5
    
    private JTextPane inhalt;
     
    inhalt.setContentType("text/plain");
    inhalt.setEditorKit(new HTMLEditorKit());
    inhalt.setText(text);

    Wäre für einen Gedankenanstoß sehr dankbar.

    Gruß
     

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Du musst das EditorKit nicht selber setzten, das macht setContentType schon automatisch. Und dort solltest du für HTML entsprechend text/html und eventuell noch das charset mit angeben.

    Und benutze bitte nicht hartcodiert \n denn damit läuft es auf anderen Betriebssystem eventuell nicht. Stattdessen:
    Code java:
    1
    
    private static final String LINE_SEPARATOR = System.getProperty("line.separator");
    machen und dann LINE_SEPARATOR benutzen.

    Wenn du Java 6 benutzt und nicht mit Threads arbeitest kannst du auch den schnellern StringBuilder statt dem StringBuffer verwenden.
     

  3. #3
    merlinonline merlinonline ist offline Mitglied
    Registriert seit
    Aug 2007
    Beiträge
    14
    Hi,
    besten dank für die Änderungsvorschläge, die auch gleich eingearbeitet habe. Nur leider ohne Erfolg. Er will trotzdem nicht die Seite inkl. Header akzeptieren. Immer noch leere weiße Seite ;(

    komisch.

    Noch ne Idee?
     

Ähnliche Themen

  1. html JtextPane mehrere body tags
    Von mäcjava im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 04.09.09, 10:44
  2. JTextpane Image per HTML einfügen
    Von devian_der_999 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 31.10.08, 10:03
  3. JTextPane HTML anzeigen
    Von chriss_2oo4 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 09.04.08, 19:56
  4. JTextPane als Editor von HTML-Seiten
    Von M_C_R im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 28.04.05, 14:43
  5. bei JLabel.setText(..) wird neuer Text über den alten geschrieben?
    Von Reticent im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 02.02.05, 16:08