JAR文件中带有图像的Java工具提示
我正在使用JFreeChart,通过实现JAR文件中带有图像的Java工具提示,java,swing,tooltip,jfreechart,Java,Swing,Tooltip,Jfreechart,我正在使用JFreeChart,通过实现XYToolTipGenerator界面自定义图表的工具提示。 由于generateToolTip()方法应该返回一个字符串,下面是我在工具提示中显示图像的步骤: @Override public String generateToolTip(XYDataset dataset, int series, int item) { (...) return "<html><body><img src=\"file
XYToolTipGenerator
界面自定义图表的工具提示。
由于generateToolTip()
方法应该返回一个字符串,下面是我在工具提示中显示图像的步骤:
@Override
public String generateToolTip(XYDataset dataset, int series, int item) {
(...)
return "<html><body><img src=\"file:resources/img/image.png\"></body></html>";
}
@覆盖
公共字符串生成器OLTIP(XYDataset数据集、int系列、int项){
(...)
返回“”;
}
虽然这在直接从我的IDE(Eclipse)执行时非常有效,但在从打包的JAR文件(image.png也在JAR文件中)执行时显然会失败
任何关于如何解决这一问题的提示都将非常受欢迎(理想情况下不必从JAR文件中提取image.png)
非常感谢,,
Thomas尝试使用资源URL:
URL url = getClass().getResource("/img/image.png");
String tt = "<html><body><img src='" + url + "'></body></html>";
URL=getClass().getResource(“/img/image.png”);
字符串tt=“”;
编辑:从可执行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"));
}
@覆盖
公共字符串生成器OLTIP(XYDataset arg0、int arg1、int arg2){
返回字符串格式(
“一些数据”,
getClass().getResource(“/images/duke.gif”);
}
不幸的是,这不起作用(显示工具提示时找不到图像)。由于工具提示是由操作系统(Windows)显示的,我猜我必须在JAR文件之外提供图片。。。除非有人有很好的解决办法?Thx@Tom它应该会起作用。确保
getResource()
中的路径正确。图像在哪里?请参阅教程。@Tom在我的示例中,我可能省略了资源
文件夹。只需根据需要调整路径。Thx提供帮助,但在仔细检查所有内容(类路径等)后:它不起作用。将其他图像直接与getResource()
一起使用会起作用,因此它肯定与工具提示相关。@Tom尝试调用JOptionPane.showMessageDialog(null,tt)代码>仅检查工具提示的HTML字符串是否正确,并且您可以在弹出对话框中看到图像。另外,如果generateToolTip
在IDE中工作,那么从jar执行时就没有理由失败。Swing的HTML呈现程序应该能够处理这个问题。