2011-02-03 50 views
1

问候!用Java显示HTML

我一直在尝试使用JEditorPane来显示一些使用Java的HTML。但是我遇到了一个问题:它不显示任何图像。

我有一个简单的JFrame表格,其上有JButtonJEditorPane。按钮有这个点击处理程序:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 
{ 
    String s = jEditorPane1.getText(); 

    if (jEditorPane1.getContentType() == "text/html") 
     jEditorPane1.setContentType("text/plain"); else 
      jEditorPane1.setContentType("text/html"); 

    jEditorPane1.setText(s); 
} 

这“转换”纯文本为html和单击时返回。这对于简单的html来说是完美的。但是,当我尝试显示一些图像(给图像是.jar我正在执行内部目录)我得到image not found图片。当我将图像放入我的.jar中时也会发生同样的情况。

所以,问题是:这是如何解决的?

还有一个问题需要解决:我可以在文件目录中放置一些HTML文件,包括我的(或新文件).jar,然后显示它们是从那一个文件加载的吗?如果是这样,可以怎么做?

回答

1

关于你的第一个问题:既然你直接把HTML文本给编辑器窗格,而不要求从URL加载它,它不知道如何解析相对URL。

您这样有两个解决方案:

  1. 使用绝对URL为你的形象
  2. 告诉JEditorPane中必须使用加载资源的基本URL。

对于第二个解决方案,您只需获取编辑器窗格使用的HTMLDocument实例,并调用setBase()方法。

关于你提到的第二个问题,你当然可以代替HTML和图像的jar文件,调用Class.getResource()来获取这些HTML文件之一的URL,并把它的URL给编辑窗格:它会加载HTML并相对于加载的HTML文件的URL显示图像。

+0

谢谢!这一个是有帮助的。但第二个问题是关于运行时文件添加。可能吗?我的意思是可以存储HTML文件和所有正在运行的`.jar`文件以及如何完成这些? – shybovycha 2011-02-03 15:10:53