[Megoldva:] JEditorPane.SetPage() "no protocol" kivétel

Fórumok

Sziasztok!

Az alábbi kis programot írtam egy HTML fájl JEditorPane objektumban való megjelenítésére. Egyszerűen nem boldogulok vele. A program futtatásakor ezzel a kivétellel áll le:

I/O ERROR no protocol: /home/pj/x.html

Tehát megtalálja, csak nem tudja milyen protokollal olvassa be a html fájlt. A dokumentációban én sehogy sem találom, hogy mit kellene még csinálni, hogy a fájlt be tudjam olvasni, és megjeleníteni a JEditorPane objektumban.


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

public class Elemi extends JFrame {
    JEditorPane editor = new JEditorPane();
    HTMLEditorKit kit = new HTMLEditorKit();
    
    public Elemi() {
        super("- Próba program -");
        editor.setEditorKit(kit);
        editor.setEditable(true);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        BorderLayout layout = new BorderLayout();
        setLayout(layout);
        add(editor, BorderLayout.CENTER);
        try {
            java.net.URL helpURL = new java.net.URL("/home/pj/x.html");
            editor.setPage(helpURL);  
        }
        catch (FileNotFoundException e) {
            System.out.println("File not found");            
        }
        catch (IOException e) {
            System.out.println("I/O ERROR  " 
                    + e.getMessage()
                    );
        } 
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        Elemi frame = new Elemi();
    }

}

Ha tudtok, segítsetek. Kösz!

Hozzászólások

Így hirtelen ezt találtam, de nem próbáltam ki (a tiedet sem):

JEditorPane htmlDisplay = new JEditorPane;
htmlDisplay.setEditable(false);
htmlDisplay.setContentType("text/html");
htmlDisplay.setPage("url_as_string_or_java.net.URL")

Hát igazából a hibaüzenet mindent elmond, hiányzik a protokoll az URL-ből.
Így kellene szerintem:


java.net.URL helpURL = new java.net.URL("file:///home/pj/x.html");

Lehet hogy csak 1 vagy 2 / jel kell a file: után, ezt sosem tudtam megjegyezni.
Ezen kívül még hiányzik a main loop a progiból.
Ha tudsz angolul, akkor a hivatalos java tutorialnak elég jó swing-es része van, én is abból tanultam anno.

*szerk: bocs, nem hiányzik semmilyen main loop, csak nincs meghívva a konstruktor végén a

setVisible(true)