【发布时间】:2016-07-22 20:14:18
【问题描述】:
我正在显示一个条形图,并试图让条形上方的标签以正确的语言环境显示(它们是浮动的)。我正在 JasperSoft Studio 6.2.0 中开发。我将全局和/或报告(执行时间)语言环境设置为 en_US,但标签仍显示在我的 Windows 语言环境 (nl_NL) 中。然后我将标签表达式设置为
new DecimalFormat("#,##0.0##;(#,##0.0##-)").format($F{Hours})
但它仍在 Windows 语言环境中。仅当我将标签表达式显式设置为en_US locale 时:
NumberFormat.getInstance(Locale.US).format($F{Hours})
我得到正确的结果吗?在其他地方(TextFields),设置格式模式(例如"#,##0.0##;(#,##0.0##-)")会导致应用正确的语言环境。在条形图设置中,无法以相同的方式指定模式,这就是我尝试在代码中执行此操作的原因。
这是一个错误还是我遗漏了什么?
【问题讨论】:
-
我知道我可以使用
NumberFormat.getInstance($P{REPORT_LOCALE}).format($F{Hours}),但这并不能让我设置模式,而且还远非理想。 -
你可以使用 $P{REPORT_FORMAT_FACTORY}.createNumberFormat("#,##0.0##;(#,##0.0##-)", $P{REPORT_LOCALE}).format($ F{Hours}) 这将在每次调用时创建一个新的格式化程序,从性能的角度来看这显然不是理想的。
标签: jasper-reports bar-chart jfreechart