Я просто хочу добавить, что исходный загруженный файл представляет собой javadoc, который имеет имена всех классов, я хочу, чтобы он отображал соответствующую страницу для каждого класса, когда я нажимаю на гиперссылку с ее именем, когда я печатал в в консоли я не видел проблем с сбором соответствующего URL-адреса, однако каждый раз, когда я пытаюсь добавить его в JEditorPane, я получаю исключение NullPointerException.hyperlinkUpdate() дает мне NullPointerException каждый раз, когда я нажимаю гиперссылку в JEditorPane?
Вот моя программа:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class Help implements HyperlinkListener
{
JEditorPane htmlPane;
String url = "file:///F:/java%2012/Isp/help%20file%20try/doc%202/allclasses-frame.html";
public void hyperlinkUpdate(HyperlinkEvent event) {
if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try {
htmlPane.setPage(event.getURL());
//url.setText(event.getURL().toExternalForm());
//System.out.println(event.getURL().toString());
}
catch(IOException ioe) {
// System.out.print("err");
// Some warning to user
}
}
}
public void frame()
{
JFrame frame = new JFrame("asdd");
JLabel l = new JLabel("asdsada");
try
{
JEditorPane htmlPane = new JEditorPane(url);
htmlPane.addHyperlinkListener(this);
htmlPane.setEditable(false);
frame.add(new JScrollPane(htmlPane));
}
catch(IOException ioe) {
System.err.println("Error displaying " + url);
}
frame.setSize(1200,800);
frame.setVisible(true);
}
public static void main(String[] args)
{
Help h =new Help();
h.frame();
}
}
Пожалуйста, используйте последовательный и логический отступ для кодовых блоков. –