2013-04-22 27 views
1

我正在使用JFreeChart,其中我通過實現XYToolTipGenerator接口來自定義圖表的工具提示。 由於generateToolTip()方法應該返回一個字符串,這裏是我做的,以顯示工具提示圖片:Java工具提示帶有JAR文件中的圖像

@Override 
public String generateToolTip(XYDataset dataset, int series, int item) { 
    (...) 
    return "<html><body><img src=\"file:resources/img/image.png\"></body></html>"; 
} 

雖然直接從我的IDE(Eclipse中)在執行時,這個完美的作品,它顯然失敗當從打包的JAR文件執行時(image.png也在JAR文件中)。

任何暗示如何解決這個問題將不勝感激(理想情況下,無需從JAR文件中提取image.png)。

非常感謝, 托馬斯

回答

3

嘗試使用資源網址:

URL url = getClass().getResource("/img/image.png"); 
String tt = "<html><body><img src='" + url + "'></body></html>"; 

編輯:簡單的例子,從可執行的JAR運行,顯示工具提示:

@Override 
public String generateToolTip(XYDataset arg0, int arg1, int arg2) { 
    return String.format(
      "<html><body><img src='%s'> some data </body></html>", 
      getClass().getResource("/images/duke.gif")); 
} 

enter image description here

+0

不幸的是,這不起作用(顯示工具提示時圖像未找到)。由於操作系統(Windows)顯示的工具提示,我的猜測是,我將不得不提供JAR文件以外的圖片......除非有人有一個明智的解決方法? Thx – Tom 2013-04-22 19:59:39

+0

@Tom它應該工作。確保'getResource()'中的路徑是正確的。圖像位於哪裏?請參閱[使用getResource加載圖像](http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html#getresource)教程。 – tenorsax 2013-04-22 20:02:35

+0

@Tom我可能在我的示例中省略了'resources'文件夾。根據需要調整路徑。 – tenorsax 2013-04-22 20:14:28