JasperReports 6.0.3:JRDesignTextField.setFont 和 JasperDesign.getFontsMap 已弃用并删除

JasperReports 6.0.3: JRDesignTextField.setFont and JasperDesign.getFontsMap is deprecated and removed

我正在尝试在 JasperReport 的 JRDesignTextField 对象上设置我在 JasperDesign 的 getFontMap() 中的字体,如下所示:

JRDesignTextField text; // I have this object
JasperDesign jasperDesign; //I have this object from a master jrxml template
text.setFont((JRFont)jasperDesign.getFontsMap().get("ColumnHeadingFont"));

升级到 JasperReports 6.0.3,在 JRDesignTextField 上设置字体并从 JasperDesign 获取 FontMap 被标记为 "deprecated"。 在深入挖掘之后,我做了一些变通方法来调整这段代码,但我不确定它是否正确:

JRDesignTextField text; // I have this object
JasperDesign jasperDesign; //I have this object
text.setFontName("ColumnHeadingFont");
List<JRStyle> stylesList = jasperDesign.getStylesList();
for(JRStyle st : stylesList){
    if("ColumnHeadingFont".equals(st.getFontName()))
    {
        text.setFontSize(st.getFontsize());
        break;
    }
}

所以问题分为两个:

这个问题我提出的方法是否正确,有没有更好的方法?

所以我提出的解决方案是可行的...从主模板中获取样式详细信息(字体大小)并将其用于设计新模板的文本字段。代码如下:

JRDesignTextField text; // This text field is from the new jasper report file
JasperDesign jasperDesign; //This is from master template that has all info

text.setFontName("ColumnHeadingFont");
List<JRStyle> stylesList = jasperDesign.getStylesList();
for(JRStyle st : stylesList){
if("ColumnHeadingFont".equals(st.getFontName()))
{
    text.setFontSize(st.getFontsize());
    break;
}
}