В приведенном ниже фрагменте кода возникает проблема, что он не будет работать, если в браузере будет нажата кнопка перезагрузки, содержащая окно апплета. Он работает при первом запуске апплета, но не при перезагрузке. То же самое происходит в AppletViewer.Странные проблемы с HTMLEditorKit
Причина заключается в том, что вызов Text.setText (...) с ошибкой NullPointerException находится глубоко внутри HTMLParser. Я уже пытался поместить вызов setText в start(), но это не помогло.
Знаете ли вы, что обходной путь? Спасибо за вашу помощь. RG
@Override
public void init()
{
//Execute a job on the event-dispatching thread:
//creating this applet's GUI.
try
{
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createGUI();
}
});
}
catch (Exception e)
{
e.printStackTrace();
System.err.println("createGUI didn't successfully complete");
}
}
private void createGUI()
{
((JComponent)this.getContentPane()).setBorder(new CompoundBorder
(BorderFactory.createRaisedBevelBorder(),
new EmptyBorder(5,5,5,5)));
BorderLayout bl=new BorderLayout();
bl.setVgap(5);
setLayout(bl);
Input=new JTextField();
Input.setFont(new Font("arial",Font.PLAIN,14));
add("North",Input);
Input.addActionListener(this);
HTMLEditorKit kit=new HTMLEditorKit();
Text=new JTextPane();
Text.setFont(new Font("arial",Font.PLAIN,14));
Text.setEditorKit(kit);
Text.setText("<p>Test</p>");
Text.setEditable(false);
Text.setBackground(Color.white);
add("Center",new JScrollPane(Text));
}
Спасибо за ответ! Да, код макета старомодный, но он все еще работает, и это не проблема. Я попробовал свой JEditorPane метод без HTMLEditorKit, и это похоже на то же, но проще. Но апплет все еще падает после перезагрузки, с такой же проблемой в парсе HTML. Если я использую обычный текст, я могу перезагружаться так часто, как мне нравится. – Rene
И нет, недостающие теги html и body не имеют значения. – Rene
Благодаря вашей помощи я нашел это: Это ошибка. См. Http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6993691 – Rene