JEditorPane + html -> java.io.IOException: invalid url

Ancodre

Mitglied
Hallo zusammen!

Ich komme irgendwie nicht weiter. Hab auch per Google gesucht, aber irgendwie finde ich meinen Fehler nicht.
Der Compiler gibt folgendes aus:

Code:
Failed to open resources/index.html
IOException: java.io.IOException: invalid url

Der Pfad zur HTML-Datei ist aber richtig, denke ich. Das Programm-Icon (b.gif) wird nämlich gezogen.
Hab mittlerweile etliche Male den Code abgeändert, aber jetzt sehe ich den Wald vor lauter Bäumen nicht mehr.

Hier mein Quelltext:
Java:
package testen;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.html.*;
import java.awt.*;
import java.io.*;
import java.net.*;

public class JEditorPaneDemo extends JFrame
{
	private static final long	serialVersionUID	= 1299858177834171934L;
	JEditorPane								html;
	private Container					con;
	private JPanel						jpCenter;

	public static void main(String[] args)
	{
		new JEditorPaneDemo().setVisible(true);
	}

	public JEditorPaneDemo()
	{
		super("HtmlDemo");

		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		this.setBounds((screenSize.width - this.getWidth()) / 2 - 400,
				(screenSize.height - this.getHeight()) / 2 - 400, 800, 800);

		Image programIcon = Toolkit.getDefaultToolkit().getImage("resources/b.gif");
		this.setIconImage(programIcon);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);

		this.initComponents();
	}

	private void initComponents()
	{
		this.con = this.getContentPane();
		// this.con.add(this.getNorthPanel(), BorderLayout.NORTH);
		this.con.add(this.getCenterPanel(), BorderLayout.WEST);
		// this.con.add(this.getRightPanel(), BorderLayout.CENTER);
	}

	private JPanel getCenterPanel()
	{
		if (this.jpCenter == null)
		{
			this.jpCenter = new JPanel();
			this.jpCenter.setBackground(Color.BLUE);
			this.jpCenter.setPreferredSize(new Dimension(600, 764));

			try
			{
				URL url = null;
				String path = null;

				path = "resources/index.html";
				url = getClass().getResource(path);

				System.err.println("Failed to open " + path);
				// url = null;

				html = new JEditorPane(url);
				html.setEditable(false);
				html.addHyperlinkListener(createHyperLinkListener());
				html.setPage(url);
				JScrollPane scroller = new JScrollPane();
				JViewport vp = scroller.getViewport();
				vp.add(html);

				this.jpCenter.add(scroller, BorderLayout.CENTER);
			}
			catch (MalformedURLException e)
			{
				System.out.println("Malformed URL: " + e);
			}
			catch (IOException e)
			{
				System.out.println("IOException: " + e);
			}

		}

		return this.jpCenter;
	}

	public HyperlinkListener createHyperLinkListener()
	{
		return new HyperlinkListener()
		{
			public void hyperlinkUpdate(HyperlinkEvent e)
			{
				if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
				{
					if (e instanceof HTMLFrameHyperlinkEvent)
					{
						((HTMLDocument) html.getDocument())
								.processHTMLFrameHyperlinkEvent((HTMLFrameHyperlinkEvent) e);
					}
					else
					{
						try
						{
							html.setPage(e.getURL());
						}
						catch (IOException ioe)
						{
							System.out.println("IOE: " + ioe);
						}
					}
				}
			}
		};
	}

	void updateDragEnabled(boolean dragEnabled)
	{
		html.setDragEnabled(dragEnabled);
	}

}

Wäre nett, wenn mal jemand drüber schauen könnte.
Vielen Dank im Voraus!
 
Zuletzt bearbeitet:
V

vanny

Gast
Also ich denke mal der Fehler liegt in Zeile 59, schau doch mal nach, was da als Zuweisung für url ankommt.

Gruß Vanny
 

Ancodre

Mitglied
Hey, danke für Deine Mühe!
Du hast Recht.
Ich habe in Zeile 60
Code:
System.out.println(url);[code] eingefügt. Ich hoffe, das hast Du damit gemeint.
Der Compiler gibt jetzt [CODE]Failed to open resources/index.html
null
IOException: java.io.IOException: invalid url
aus. Verstehe ich nicht. Vor allem verstehe ich jetzt auch nicht, warum
Code:
null
nicht als erstes ausgegeben wird (OK, das ist im Moment auch nicht so wichtig).

Hab nochmal gegoogelt, bin aber zu keinem Ergebnis gekommen. Hab ich vielleicht was vergessen?
 
V

vanny

Gast
so gehts bei mir:

Java:
import java.io.IOException;
import java.net.URL;

import javax.swing.JEditorPane;
import javax.swing.JFrame;

public class HauptFenster extends JFrame{
	
	private JEditorPane html;
	
	public HauptFenster(){
		
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setTitle("Wo ist sie hin, die URL ?...");
		this.setSize((int)(java.awt.Toolkit.getDefaultToolkit().getScreenSize().getWidth()*0.8), (int)(java.awt.Toolkit.getDefaultToolkit().getScreenSize().getHeight()*0.8));
		this.setLocationRelativeTo(null);
		

			URL url = null;
			url = (getClass().getResource("/resources/index.html"));// man beachte einen Slash mehr ^^
			System.out.println(url);
			try {
				html = new JEditorPane(url);
			} catch (IOException e) {
				e.printStackTrace();
			}
			
		
		this.add(html);
		this.setVisible(true);
		
	}

}

und null wird nicht als erstes ausgegeben, weil schon die Zuweisung für den path nix ist ^^
"/" den haste vergessen, darum scheitert es.

Gruß Vanny
 
Zuletzt bearbeitet von einem Moderator:

Ancodre

Mitglied
Super Vanny, ich danke Dir!
Das mit dem Slash stimmt. Komischerweise wurde die HTML-Datei dann aber nur beim ersten Start gezogen. Bei jedem neuen Start, war nur so etwas, wie ein Platzhalter (so sieht es zumindest aus) zu sehen. Wenn ich was am Quelltext veränderte, funzte es wieder, aber nur beim ersten Start.
Ich habe jetzt Deine Version übernommen. Mein Quelltext sieht jetzt so aus:

Java:
package testen;

import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.net.*;

public class JEditorPaneDemo extends JFrame
{
	private static final long	serialVersionUID	= 1299858177834171934L;
	private JEditorPane				html;
	private Container					con;
	private JPanel					jpCenter;

	public static void main(String[] args)
	{
		new JEditorPaneDemo().setVisible(true);
	}

	public JEditorPaneDemo()
	{
		super("HtmlDemo");

		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		this.setBounds((screenSize.width - this.getWidth()) / 2 - 400,
				(screenSize.height - this.getHeight()) / 2 - 400, 800, 800);

		Image programIcon = Toolkit.getDefaultToolkit().getImage("resources/b.gif");
		this.setIconImage(programIcon);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);

		this.initComponents();
	}

	private void initComponents()
	{
		this.con = this.getContentPane();
		// this.con.add(this.getNorthPanel(), BorderLayout.NORTH);
		this.con.add(this.getCenterPanel(), BorderLayout.WEST);
		// this.con.add(this.getRightPanel(), BorderLayout.CENTER);
	}

	private JPanel getCenterPanel()
	{
		if (this.jpCenter == null)
		{
			this.jpCenter = new JPanel();
			this.jpCenter.setBackground(Color.BLUE);
			this.jpCenter.setPreferredSize(new Dimension(600, 764));

			URL url = null;
			url = (getClass().getResource("/resources/index.html"));
			// System.out.println(url);
			try
			{
				this.html = new JEditorPane(url);
			}
			catch (IOException e)
			{
				e.printStackTrace();
			}

			JScrollPane jscrpPane = new JScrollPane(this.html);
			jscrpPane.setPreferredSize(new Dimension(598, 760));

			this.jpCenter.add(jscrpPane);

		}

		return this.jpCenter;
	}

}

Eigenartiger Weise muss ich das Verzeichnis mit dem Programmicon woanders platzieren. Hab es im selben probiert (mit und ohne Slash), geht aber nicht (*lol*).
Das Verzeichnis mit der HTML-Datei liegt jetzt IM bin-Verzeichnis und das mit dem Icon NEBEN bin, src...

Naja, zumindest habe ich mein Ziel (HTML-Datei in einem JPanel darstellen) jetzt erreicht. Dank Deiner Hilfe!

Viele Grüße und danke
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Erste Schritte HTML aus JEditorPane drucken Java Basics - Anfänger-Themen 5
C Html in einem JEditorPane anzeigen Java Basics - Anfänger-Themen 2
D JEditorPane html problem Java Basics - Anfänger-Themen 2
hdi HTML code geht nicht bei JEditorPane Java Basics - Anfänger-Themen 5
G JEditorPane - HTML Datei übergeben? Java Basics - Anfänger-Themen 3
G JEditorPane HTML-trim Java Basics - Anfänger-Themen 2
G HTML-JeditorPane und Formulare Java Basics - Anfänger-Themen 2
VPChief Bild in JEditorPane Java Basics - Anfänger-Themen 9
Nikut Eclipse - Speichern eines JEditorPane als .txt Java Basics - Anfänger-Themen 10
H JEditorPane: ermitteln, ob Zeichen unterstrichen Java Basics - Anfänger-Themen 4
B JEditorPane und append() Java Basics - Anfänger-Themen 3
H JEditorPane: Textformate (RTF) zuweisen Java Basics - Anfänger-Themen 4
D JEditorPane aktuelle Zeile auslesen Java Basics - Anfänger-Themen 4
M Zeile n von jEditorPane ausgeben Java Basics - Anfänger-Themen 5
L Inhalt von JEditorPane löschen Java Basics - Anfänger-Themen 4
M größe JEditorPane Java Basics - Anfänger-Themen 5
W ProcessBuilder Problem -->gelöst - - Jetzt JEditorPane Problem Java Basics - Anfänger-Themen 6
Developer_X in JEditorPane verschiedene Farben, verwenden Java Basics - Anfänger-Themen 7
V info popup fürein JEditorPane Java Basics - Anfänger-Themen 2
G In java Text markieren( auf JEditorPane unterstreichen) Java Basics - Anfänger-Themen 10
Horst79 Scrollbar in einem jEditorPane Java Basics - Anfänger-Themen 2
D jeditorpane checkbox abfragen? Java Basics - Anfänger-Themen 7
B Link in JEditorPane eingeben? Java Basics - Anfänger-Themen 3
G JEditorPane Java Basics - Anfänger-Themen 4
N jpg vom Inhalt einer JeditorPane erstellen. Java Basics - Anfänger-Themen 10
2 Alles Selektieren in JEditorPane Java Basics - Anfänger-Themen 5
zilti JEditorPane; Applet aus Unterverzeichnis starten Java Basics - Anfänger-Themen 7
zilti JEditorPane Java Basics - Anfänger-Themen 2
L JEditorpane Mausklick simulieren Java Basics - Anfänger-Themen 6
E Append bei JEditorPane Java Basics - Anfänger-Themen 2
G JEditorPane setBackground() Java Basics - Anfänger-Themen 4
S JEditorPane/Thread.komischer Fehler Java Basics - Anfänger-Themen 10
T JEditorPane und Stylesheet.sieht komisch aus. Java Basics - Anfänger-Themen 6
G JEditorPane - Hilfe - Seite Java Basics - Anfänger-Themen 2
G jEditorPane: inhalt ohne zeilenumbruch darstellen. wie? Java Basics - Anfänger-Themen 3
G Text an ein JEditorPane hängen Java Basics - Anfänger-Themen 19
W Javadoc HTML erzeugen mit allen dependency Java Basics - Anfänger-Themen 11
M html-seite drucken (gerendert) Java Basics - Anfänger-Themen 3
I HTML Code säubern Java Basics - Anfänger-Themen 4
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
B HTML Code in XML speichern Java Basics - Anfänger-Themen 3
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
K Erstes kleines Spieleprojekt - Java GUI in HTML einbinden Java Basics - Anfänger-Themen 3
B String nach HTML formatieren Java Basics - Anfänger-Themen 9
S HTML-Quelltext hinter HTTPS Java Basics - Anfänger-Themen 1
J Input/Output Input Buttons Html mit JSP Java Basics - Anfänger-Themen 3
E HTML in Java einbinden oder JavaScript? Java Basics - Anfänger-Themen 5
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
krgewb Input/Output Umlaute in generierter HTML-Datei Java Basics - Anfänger-Themen 7
N Status-Log - HTML Java Basics - Anfänger-Themen 12
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
I Meta Tags vergleichen mit Html Vorgabe Java Basics - Anfänger-Themen 8
B HTML Code drucken Java Basics - Anfänger-Themen 4
D HTML Manipulation Navigation Java Basics - Anfänger-Themen 1
Z Html Element aus der Webseite auslesen Java Basics - Anfänger-Themen 1
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
M Java und Html Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
T Ausgabe in HTML :( Java Basics - Anfänger-Themen 19
F HTML Datei in .jar speichern und abändern Java Basics - Anfänger-Themen 2
S mit Java HTML Button drücken "lassen" Java Basics - Anfänger-Themen 8
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
T HTML-Inputbox ansteuern Java Basics - Anfänger-Themen 4
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
I HTML in String wandeln? Java Basics - Anfänger-Themen 1
D javacode durch Html ausfuehren Java Basics - Anfänger-Themen 13
W HTML Code, Umlaute werden nicht richtig dargestellt Java Basics - Anfänger-Themen 7
I jar-Datei in HTML einbinden Java Basics - Anfänger-Themen 6
O HTML -> BBCode Parser? Java Basics - Anfänger-Themen 3
O Methode in andere Klasse verlegt, "auslesen" einer HTML Seite verschnellert - Problem. Java Basics - Anfänger-Themen 4
V Umlaute beim Parsen einer HTML Seite Java Basics - Anfänger-Themen 4
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
J Methode um eine HTML-Datei zu öffnen Java Basics - Anfänger-Themen 10
H Schnell HTML-Tags finden Java Basics - Anfänger-Themen 5
H Welcher Html-Parser? Java Basics - Anfänger-Themen 8
G Probleme beim HTML auslesen Java Basics - Anfänger-Themen 6
J Html zugriff - POST Request/Response Java Basics - Anfänger-Themen 4
A HTML-Code auslesen und mit einem Wert in der property-Datei vergleichen Java Basics - Anfänger-Themen 2
Z Input/Output HTML-Seite einlesen Java Basics - Anfänger-Themen 4
H Interface JTextPane html formatiert kopieren Java Basics - Anfänger-Themen 2
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
D Wie den HTML-Teil des Chat Tutorials aus dem FAQ-Bereich starten? Java Basics - Anfänger-Themen 5
C Link wie bei HTML Java Basics - Anfänger-Themen 7
F Methoden replaceAll (regex) HTML Java Basics - Anfänger-Themen 3
M Mit Java eine HTML-Seite speichern Java Basics - Anfänger-Themen 11
C Java in HTML einbinden Java Basics - Anfänger-Themen 2
N Website HTML mit JavaScript abrufen Java Basics - Anfänger-Themen 9
R JSON - Ausgabe als HTML mit gson Java Basics - Anfänger-Themen 6
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
S Lightbox Script vs. Taco HTML Script Java Basics - Anfänger-Themen 4
R Pattern bzw. Regex HTML-Code Java Basics - Anfänger-Themen 10
S String mit ASCII/HTML Zeichen darstellen Java Basics - Anfänger-Themen 10
S HTML Regularer Expression Java Basics - Anfänger-Themen 20
S regulärer Ausdruck HTML Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben