如何在运行时修改JFreeChart的X轴与Y轴标签?
如何在运行时修改JFreeChart的X/Y轴标签文本
嗨,我来帮你搞定这个问题!要在运行时修改JFreeChart的X轴和Y轴标签,你只需要从图表中获取对应的轴对象,然后调用它的setLabel()方法就可以了,正好可以无缝集成到你的多语言切换逻辑里。
具体实现步骤
- 从你的
JFreeChart实例中获取XYPlot对象(因为你创建的是XY折线图,对应的Plot类型是XYPlot) - 通过
XYPlot分别获取X轴(Domain Axis,即横轴)和Y轴(Range Axis,即纵轴) - 调用轴对象的
setLabel()方法,传入从资源文件读取的多语言文本
修改你的resetLanguage方法
把下面这段新增代码加到你的方法里,就能实现轴标签的动态切换了:
public void resetLanguage(Locale locale) { displayLanguage = locale; resources = ResourceBundle.getBundle("DTTUI-Text", displayLanguage); // 修改图表标题 chart.setTitle(resources.getString("GUI_CHART_TITLE")); // 修改系列描述 measurement.setDescription(resources.getString("GUI_CHART_GRAPH_NAME")); // --- 新增:动态修改X/Y轴标签 --- XYPlot plot = chart.getXYPlot(); // 更新X轴标签 plot.getDomainAxis().setLabel(resources.getString("GUI_CHART_X_LABEL")); // 更新Y轴标签 plot.getRangeAxis().setLabel(resources.getString("GUI_CHART_Y_LABEL")); }
补充说明
- 记得在你的
DTTUI-Text资源文件中添加对应的键值对,比如:# 英文资源文件示例 GUI_CHART_X_LABEL=X Axis GUI_CHART_Y_LABEL=Y Axis # 中文资源文件示例 GUI_CHART_X_LABEL=横轴 GUI_CHART_Y_LABEL=纵轴 - 不管你初始化图表时有没有设置轴标签(比如你用
ChartFactory.createXYLineChart传入的"x"和"y"),运行时调用setLabel()都会覆盖原有文本,完全满足多语言切换的需求。
内容的提问来源于stack exchange,提问作者skonline90
相关产品推荐
相关产品推荐

