Swing JTextPane zeigt HTML-Text aus Variable nicht an :(

comiplo

Mitglied
Hallo,

Ich habe versucht eine HTML-Datei in meine Java-Applikation einzubinden. Dazu verwende ich JTextPane, da dies HTML, CSS und JavaScript darstellen kann. Aber anstatt des Textes sehe ich nur ein kleines weißes Quadrat. Das soll wohl heißen, er kann den Inhalt nicht finden. Wobei mich das wundert, denn ich habe die gleiche Variable, die den Inhalt des JTextPanes darstellt, mit System.out.println prüfen lassen und in der Konsole bekomme ich es angezeigt. Was ist also falsch??

Java:
import java.net.*;
import java.io.*;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;

public class JTextPaneex {
    public static void main(String[] args) throws Exception {
        URL burl = new URL("http://google.at");
        URLConnection yc = burl.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null) {
            System.out.println(inputLine);
        }
        in.close();
        
        JFrame Rahmen = new JFrame("jtextpane test ...");
        Rahmen.setSize (400,300);
        Rahmen.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        JPanel Platte = new JPanel ();
        
        JTextPane pane = new JTextPane();
        pane.setEditable(false);
        pane.setText(inputLine);
        pane.setContentType("text/html");
        
        Platte.add(pane);
        Rahmen.setContentPane (Platte);
        Rahmen.setVisible(true);
    }
}

MfG,
comiplo
 
Hab ich auch gemerkt ^^

korrigiert:
Java:
import java.net.*;
import java.io.*;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;

public class JTextPaneex {
    public static void main(String[] args) throws Exception {
        URL burl = new URL("http://google.at");
        URLConnection yc = burl.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));
        String inputLine;
        String input = null;

        while ((inputLine = in.readLine()) != null) {
            System.out.println(inputLine);
            input += inputLine;
        }
        in.close();
        
        JFrame Rahmen = new JFrame("jtextpane test ...");
        Rahmen.setSize (400,300);
        Rahmen.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        JPanel Platte = new JPanel ();
        
        JTextPane pane = new JTextPane();
        pane.setEditable(false);
        pane.setText(input);
        pane.setContentType("text/html");
        
        Platte.add(pane);
        Rahmen.setContentPane (Platte);
        Rahmen.setVisible(true);
    }
}

Funktioniert aber immer noch nicht ...
 
Das scheint vom Quelltext der Website abhängig sein. Verwende nach Möglichkeit setPage(...).
Allerdings wird man mit Bordmitteln heutige Websiten nie vernünftig darstellen können.
Java:
URL burl = new URL("http://google.at");

final JFrame rahmen = new JFrame("jtextpane test ...");
rahmen.setSize(400, 300);
rahmen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JTextPane pane = new JTextPane();
pane.setContentType("text/html");
pane.setEditable(false);
pane.setPage(burl);

rahmen.getContentPane().add(pane);

SwingUtilities.invokeLater(new Runnable() {
	public void run() {
		rahmen.setVisible(true);
	}
});
 

Neue Themen


Zurück
Oben