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!
- 1035 megtekintés
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")
- A hozzászóláshoz be kell jelentkezni
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)
- A hozzászóláshoz be kell jelentkezni
Szia keccs!
Igazad van. A "file:" rész hiányzott. Nálam egy per-jellel és hárommal is működik.
Nagyon szépen köszönöm!
De természetesen köszönöm gaborgabor-nak is!
- A hozzászóláshoz be kell jelentkezni